Javascript getUTCDate返回前一天

Javascript getUTCDate返回前一天,javascript,datetime,date,Javascript,Datetime,Date,代码是这样的 var date = new Date("2012/09/04"); console.log(date.getUTCDate()); //returns 3 有人能告诉我如何根据yyyy/mm/dd这样的时间字符串获取正确的日期吗 thx~如果您只处理日期(即不关心时间),则不应使用getUTCxxx。如果像您那样创建Date对象(仅指定日期),它会将时间设置为0:00:00。转换为UTC时,如果时区为正值,则会从日期中减去一些时间,因此日期将代表前一天 相反,我建议只使用get

代码是这样的

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
),但这是因为
新日期(“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");
}

当我给出类似“2012/9/4”的字符串模式时,应为4