javascript - javascript中比较日期的问题

标签 javascript

嗨,

我有以下代码应该比较两个日期:

 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/

相关文章:

javascript - JavaScript 中如何知道变量的名称?

javascript - 如何在溢出的 div 中保持当前项目可见?

javascript - 使用 getElementsByClassName 操作样式

javascript - 如何通过网页控制游戏服务器?

php - 搜索正文内容,用弹出窗口突出显示

javascript - 如何使用 highcharts 创建自定义按钮,每个数据按钮为其数据调用另一个 php 脚本

javascript - 页面中有 2 个 Ajax 表单,但只有一个在工作

javascript - 绝对 .position() 值

javascript - 在 React 状态下使用嵌套对象

javascript - jsx 三元运算符中的多个条件