Javascript getUTCDate返回前一天

vik*_*ute 4 javascript datetime date

像这样的代码

var date = new Date("2012/09/04");
console.log(date.getUTCDate());
//returns 3
Run Code Online (Sandbox Code Playgroud)

谁能告诉我如何根据yyyy/mm/dd这样的时间字符串获取正确的日期?

THX〜

mgi*_*nbr 6

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
Run Code Online (Sandbox Code Playgroud)

如果我在,比如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
Run Code Online (Sandbox Code Playgroud)