转换Javascript日期的问题

时间:2014-05-14 08:52:28

标签: javascript datetime

我有一个字符串“2014-01-27”。现在如何将其转换为“ 2014-01-27T00:00:00.0000000 ”? 这是javascript中有效的日期格式吗?

1 个答案:

答案 0 :(得分:2)

  

“2014-01-27T00:00:00.0000000”?这是javascript中有效的日期格式吗?

是的,但是......

ECMA-262 says如果类似ISO 8601的字符串缺少时区(例如2014-01-27T00:00:00.0000000),那么它将被假定为UTC。但是,如果你将这样的字符串传递给Date.parse,一些浏览器将其视为本地文件,一些浏览器将其视为UTC(有些浏览器会像IE 8一样,根本不会解析它,即使是时区也是如此)。

为避免这种情况,请手动解析字符串并创建UTC日期:

function parseYMDasUTC(s) {
  var b = s.split(/\D/);
  return new Date(Date.UTC(b[0],--b[1],b[2]));
}

console.log(parseYMDasUTC("2014-01-27")); // Mon Jan 27 2014 08:00:00 GMT+0800