嗨,
我有以下代码应该比较两个日期:
var d = ($('#day').val());
var m = ($('#month').val() -1);
var y = $('#year').val();
var birthdate = new Date(y,m,d);
alert('birthdate is' + birthdate);
var today = new Date();
alert('today is'+ today);
var diff = (today - birthdate);
years = Math.floor(diff/(1000*60*60*24*365));
alert(years);
它基本上可以工作,但我有兴趣看看出生日期是否使用户超过 18 岁。因此,我尝试输入 1993 年 3 月 30 日 - 这将使用户成为 17 岁。我正在提醒出生日期,它会返回正确的日期(星期一 1993 年 3 月 29 日 00:00:00 GMT + 0100 BST)。 ...然而,当它应该评估为 17 时,它的评估结果为 18(上述代码中的警报(年))。直到我输入 1993 年 4 月 3 日,它的计算结果才变成 17。
有什么想法吗?
最佳答案
您必须注意闰年、时区...在重新发明轮子之前,我建议您使用 DateJS .
if((18).years().ago().isBefore(birthdate)) {
// handle underage visitors
}
关于javascript - javascript中比较日期的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5473289/