![](/img/trans.png)
[英]Javascript getUTCDate returns “31” as day when picking 2013/04/01?
[英]Javascript getUTCDate return the previous day
像这样的代码
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");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.