使用Javascript在未来设置日期

时间:2015-07-16 00:39:16

标签: javascript date

我正在尝试根据之前设定的日期生成未来日期,但我的输出结果很奇怪。

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)

为什么这里的日期不正确? 最终我想比较日期,但有些事情不在这里。

2 个答案:

答案 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导致日期错误的原因