如何在javascript中操作日期

时间:2016-08-31 20:56:45

标签: javascript

我遇到操纵日期的问题。我在localstorage中有一个变量 savedTime 变量,它包含这个日期:

npm install -g typescript
npm install -g tsd@next
cd <project folder>
tsd install node
tsc -init
tsc Ingest.ts

我需要为此变量 savedTime 添加1小时以检查是否超过1小时:

Wed Aug 31 2016 16:31:30 GMT-0300 (Hora oficial do Brasil)

但是在尝试为此变量添加1小时时,转换对象中的字符串,此( savedTime )将返回:

var savedTime = new Date(savedTime); //converts string to date object
var checkExpired = savedTime.setHours(savedTime.getHours() + 1); //add 1 hour to savedTime

我期望的是+ 1小时的字符串:

1472675490000

比较日期以检查是否超过1小时

Wed Aug 31 2016 17:31:30 GMT-0300 (Hora oficial do Brasil)

4 个答案:

答案 0 :(得分:5)

instance.setHours()操纵实例。所以你可以做到

d = new Date('Wed Aug 31 2016 16:31:30 GMT-0300');
d.setHours(d.getHours() + 1);

现在d包含新的日期时间。

答案 1 :(得分:2)

setHours将操纵当前对象并返回其新值。而不是使用返回值,只需继续使用该对象。

var savedTime = new Date(savedTime); //converts string to date object
savedTime.setHours(savedTime.getHours() + 1); //add 1 hour to the savedTime

if (currentDate > savedTime) {
    //passed 1 hour
}

答案 2 :(得分:0)

您将从“&#39;纪元日期”开始以毫秒为单位获取该值。这是1970年1月1日。

如果您希望以正确的格式进行此操作,则需要使用某些数学/其他Date对象函数将此信息解析为该信息。

这是执行此操作的文档,它非常简单:

JS Date Formatting

答案 3 :(得分:0)

使用.getTime()

if(currentDate.getTime() > checkExpired) {
    //passed 1 hour
}