2011-02-28 47 views
7

Necesito calcular el número de semanas de diferencia entre la fecha elegida y la fecha actual. He intentado calcular con weekNumberPicked - weekNumberCurrent, pero si las dos fechas son en años diferentes, el resultado es incorrecto, por lo que probablemente deba obtenerlo como daysDifference/7. ¿Cómo debo implementar esto con la acción onSelect?jQuery UI diferencia Datepicker en días

Respuesta

15

Puede utilizar la función datePicker getDate para obtener un objeto Date.

Luego restar una fecha de la otra (también podría querer obtener el valor absoluto) para obtener los milisegundos de diferencia y calcular la diferencia en días o semanas.

$('#test').datepicker({ 
    onSelect: function() { 
     var date = $(this).datepicker('getDate'); 
     var today = new Date(); 
     var dayDiff = Math.ceil((today - date)/(1000 * 60 * 60 * 24)); 
    } 
}); 
+0

gracias, eso es exactamente lo que necesito –

2

Desde DatePicker getDate() méthode devuelve un objeto Date de JavaScript, puede hacer algo como:

var myDate = $('.datepicker').datepicker('getDate'); 
var current = new Date(); 
var difference = myDate - current; 

difference ahora contiene el número de milisegundos entre sus dos fechas , puede calcular fácilmente el número de semanas:

var weeks = difference/1000/60/60/24/7; 
0

probar este código y lo aplicó a su trabajo: D

$("#date_born").datepicker({ 
    onSelect: function() { 
     var start = $('#date_born').datepicker('getDate'); 
     var end = new Date(); 
     var age_year = Math.floor((end - start)/31536000000); 
     var age_month = Math.floor(((end - start)% 31536000000)/2628000000); 
     var age_day = Math.floor((((end - start)% 31536000000) % 2628000000)/86400000); 
     $('#age').val(age_year +' year ' + age_month + ' month ' + age_day + ' day'); 
    }, 
    dateFormat: 'dd/mm/yy', 
    maxDate: '+0d',  
    yearRange: '1914:2014', 
    buttonImageOnly: false, 
    changeMonth: true, 
    changeYear: true 
}); 

código HTML:

Date <input type="text" name="date_born" id="date_born"/> 
Age <input type="text" name="age" id="age" /> 
Cuestiones relacionadas