javascript setHours日期设置为上一个日期

时间:2017-09-18 05:05:50

标签: javascript datetime

我想使用javascript的setHours()方法将时间设置为0,但它会将当月的日期更改为比实际日期少一个。示例代码:

var d = new Date();  //2017-09-18T04:58:34.223Z
d.setHours(0,0,0,0);  //2017-09-17T18:30:00.000Z

5 个答案:

答案 0 :(得分:0)

我认为没有问题,正如您在下面的代码中看到的那样。也许你在中间做错了什么。

或者您对UTC格式感到困惑,请尝试阅读此http://php.net/manual/en/mysqli-result.fetch-row.php

var d = new Date();
console.log('d:', d)
var setToZeroTime = new Date(d.setHours(0,0,0,0))
console.log('new date: ',setToZeroTime)

答案 1 :(得分:0)

d.toLocaleString()为您提供本地日期时间

var d = new Date();  
d.setHours(0,0,0,0);  

console.log('date', d)

console.log('local date', d.toLocaleString())

console.log(d.toGMTString())

console.log(d.toISOString())

答案 2 :(得分:0)

您的代码没有问题。你正在检查的是日期的JSON格式。

var d = new Date();
d.toString();
 //"Mon Sep 18 2017 10:47:15 GMT+0530 (India Standard Time)"
d.toJSON();
//"2017-09-18T05:17:15.839Z"

d.setHours(0,0,0,0);
d.toString();
//"Mon Sep 18 2017 00:00:00 GMT+0530 (India Standard Time)"
d.toJSON();
//"2017-09-17T18:30:00.000Z"

如果您使用getDate方法,您将在设置小时数之前和之后获得18。 所以代码没有错。

答案 3 :(得分:0)

  

setHours()方法根据本地时间设置指定日期的小时数,并返回自1970年1月1日00:00:00 UTC以来直到更新的Date实例所代表的时间的毫秒数。

要将时间设置为世界时的午夜,请使用setUTCHours()

  

getUTCHours()方法根据通用时间返回指定日期的小时数。



var date = new Date();
console.log(date.toISOString());
date.setUTCHours(0,0,0,0);
console.log(date.toISOString());




答案 4 :(得分:0)

我用时刻解决了这个问题。

  

矩()STARTOF( '日');