Javascript getUTCDate返回前一天

Javascript getUTCDate return the previous day

本文关键字:前一天 返回 getUTCDate Javascript      更新时间:2023-09-26

类似的代码

var date = new Date("2012/09/04");
console.log(date.getUTCDate());
//returns 3

有人能告诉我如何根据yyyy/mm/dd这样的时间字符串来获得正确的日期吗?

thx~

如果只处理日期(即不关心时间),则不应该使用getUTCxxx。如果像以前那样创建Date对象(仅指定日期),则会将时间设置为0:00:00。转换为UTC时,如果您的时区为正,它将从您的日期中减去一些时间,因此您的日期将代表前一天。

相反,我建议只使用getDate

注意:在我的机器中(我在UTC-3),上面的代码段运行得很好(即它返回4),但这是因为new Date("2012/09/04")在这里的求值为:

alert(new Date("2012/09/04"));
// Tue Sep 04 2012 00:00:00 GMT-0300 (Hora oficial do Brasil)
alert(new Date("2012/09/04").toUTCString());
// Tue, 04 Sep 2012 03:00:00 GMT

如果我改为UTC+3,我可能会得到这样的结果:

alert(new Date("2012/09/04"));
// Tue Sep 04 2012 00:00:00 GMT+0300
alert(new Date("2012/09/04").toUTCString());
// Mon, 03 Sep 2012 21:00:00 GMT

当您将"UTC"传递给构造函数时,只需将其粘贴到字符串的末尾:

function UTCDate(s) {
    return new Date(s + " UTC");
}