jQuery UI Datepicker разница в днях

мне нужно рассчитать количество недель разницы между выбранной датой и текущей датой. Я попытался вычислить с помощью weekNumberPicked - weekNumberCurrent, но если две даты находятся в разные годы, результат неверен, поэтому мне, вероятно, нужно получить его как daysDifference / 7. Как я должен реализовать это с помощью onSelect действий?

3 ответов


вы можете использовать функцию Datepicker getDate для получения объекта Date.

затем просто вычтите одну дату из другой (возможно, также захотите получить абсолютное значение), чтобы получить разницу в миллисекундах и вычислить разницу в днях или неделях.

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

поскольку DatePicker getDate () methode возвращает объект даты javascript, вы можете сделать что-то вроде :

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

difference теперь содержит количество миллисекунд между двумя датами вы можете легко вычислить количество недель :

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

попробуйте этот код и примените его к своей работе: 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 Код:

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