2011-02-28 3 views
7

Je dois calculer le nombre de semaines de différence entre la date choisie et la date actuelle. J'ai essayé de calculer avec weekNumberPicked - weekNumberCurrent, mais si les deux dates sont dans des années différentes, le résultat est incorrect, donc j'ai probablement besoin de l'obtenir comme daysDifference/7. Comment dois-je mettre en œuvre cela avec l'action onSelect?jQuery UI Datepicker différence en jours

Répondre

15

Vous pouvez utiliser la fonction getDate de Datepicker pour obtenir un objet Date. Ensuite, il suffit de soustraire une date de l'autre (vous pouvez également obtenir la valeur absolue) pour obtenir la différence en millisecondes et calculer la différence en jours ou en semaines.

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

grâce, qui est exactement ce que je dois –

2

Depuis DatePicker getDate() Methode retourne un objet javascript Date, vous pouvez faire quelque chose comme:

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

difference contient maintenant le nombre de millisecondes entre vos deux dates , vous pouvez facilement calculer la nombre de semaines:

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

essayer ce code et appliqué à votre travail: 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 
}); 

Html Code:

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