【发布时间】:2011-07-05 18:55:42
【问题描述】:
我需要计算所选日期与当前日期之间的周数差异。我试过用weekNumberPicked - weekNumberCurrent计算,但是如果两个日期在不同的年份,结果是不正确的,所以我可能需要像daysDifference / 7一样得到它。我应该如何使用onSelect 操作来实现这一点?
【问题讨论】:
标签: javascript jquery jquery-ui date
我需要计算所选日期与当前日期之间的周数差异。我试过用weekNumberPicked - weekNumberCurrent计算,但是如果两个日期在不同的年份,结果是不正确的,所以我可能需要像daysDifference / 7一样得到它。我应该如何使用onSelect 操作来实现这一点?
【问题讨论】:
标签: javascript jquery jquery-ui date
您可以使用 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() 方法返回一个 javascript Date 对象,您可以执行以下操作:
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" />
【讨论】: