我正在尝试根据之前设定的日期生成未来日期,但我的输出结果很奇怪。
var today = new Date(),
expiration = (today.getTime() + (3*60*1000),
theFuture = new Date();
//setup future time
theFuture.setDate(expiration);
console.log(theFuture);
//outputs something like:
Tue Jan d) -2147483647 20:33:52 GMT-0500 (EST)
为什么这里的日期不正确? 最终我想比较日期,但有些事情不在这里。
答案 0 :(得分:2)
setDate
的参数是月份的日期,而getTime
的返回值是自1970年1月1日以来的毫秒数。因此,您要设置月份的日期类似于1437007985574
的东西,将来将近40亿年。你会得到一个荒谬的结果,因为日期格式化功能并不是为处理如此大的日期而设计的,而且它们在内部溢出。
由于您使用getTime
来获取以毫秒为单位的时间,因此您应该使用setTime
以相同的方式设置它:
var today = new Date(),
expiration = today.getTime() + (3*60*1000),
theFuture = new Date();
//setup future time
theFuture.setTime(expiration);
alert(theFuture);

答案 1 :(得分:0)
getDate()返回月中的某一天(1到31之间)。这就是为什么setDate导致日期错误的原因