我尝试比较两个这样的时间戳:
var nowDate = new Date();
var givenDate = new Date(parseInt(year), parseInt(month), parseInt(day), parseInt(hour), parseInt(minute), 0);
var nd_timestamp = nowDate.getTime();
var gd_timestamp = givenDate.getTime();
if (nd_timestamp > gd_timestamp) {
alert("yes");
}
但它无法正常工作。如果我查看nd_timestamp和gd_timestamp一切看起来都很好,但是if子句不起作用。如果我删除parseInt(年份)...并输入Date(2012,04,20,0,0,0),则if子句正在运行。
变量年,月等是通过一个函数来实现的,但是如果我用alert(year)等调试它,一切都很好。表格中的给定日期小于实际日期。
有人知道它为什么不使用变量吗?
谢谢!
答案 0 :(得分:2)
您应该检查传递给Date
构造函数的值是否有效,其中包括明确指定10
作为所有parseInt
的第二个参数要求避免令人讨厌的惊喜。
关于第二个参数,文档说
虽然此参数是可选的,但请始终将其指定为消除 读者混淆并保证可预测的行为。不同 当基数不是时,实现产生不同的结果 指定。
答案 1 :(得分:2)
你必须从月份取1,因为出于某种原因,它与其他原因不同。