Pregunta

He creado debajo función para obtener diferencia de fechas entre dos fechas .. peticiones comprobar que que su correcta, así como la manera de encontrar ninguna de mes (multiplicar por 30 o 31?) Y el año ..

function days_between(date1, date2,datepart) {

// The number of milliseconds in one day
 var ONE_DAY=0;
 if ( datepart === undefined ) {
  datepart = 'D';
}

 if(datepart='Y')
 {     
 ONE_DAY = 1000 * 60 * 60 * 24 * 30 *12
 }
 else if (datepart='M')
 {
 ONE_DAY = 1000 * 60 * 60 * 24 * 30
 }
 else
 {
 ONE_DAY = 1000 * 60 * 60 * 24   //for day
 }

// Convert both dates to milliseconds
var date1_ms = date1.getTime()
var date2_ms = date2.getTime()

// Calculate the difference in milliseconds
var difference_ms = Math.abs(date1_ms - date2_ms)

// Convert back to days and return
return Math.round(difference_ms/ONE_DAY)

}

¿Fue útil?

Solución

Si la aplicación va a requerir una gran cantidad de métodos de manipulación de la fecha, es posible que desee considerar el uso de algo así como el Datejs biblioteca .

Si se incluye time.js de la biblioteca Datejs, que sería capaz de hacer lo siguiente:

var future = new Date().add({months: 5}); 
var now = new Date();

var span = new TimeSpan(future - now);

console.log("Days: ", span.getDays());

El script time.js es opcional y no está incluido en los / build / versiones compiladas. Se puede descargar directamente desde el repositorio SVN .

Otros consejos

Se debe transformar en el día después de hacer la diferencia no antes. Como:

var d1 = new Date().getTime(),
d2 = new Date(2010, 11, 31).getTime();
alert(Math.round((d2-d1)/24/60/60/1000) + ' days left for 2010');
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top