将javascript datetime对象转换为highcharts Date.UTC(2014,0,2)可接受的格式

时间:2014-07-02 03:46:16

标签: javascript highcharts

我的日期时间对象采用以下格式:2014-06-24 20:41:18但Highcharts Date.UTC期望日期为:Date.UTC(2014, 0, 2)

转换它的推荐方法是什么?

1 个答案:

答案 0 :(得分:2)

  

我的日期时间对象格式如下:2014-06-24 20:41:18

这不是"日期时间对象",它是一个字符串。不要使用Date构造函数来解析字符串,它会调用已知在浏览器中不一致的Date.parse,即使对于符合ECMA-262 ed 5格式的字符串也是如此。

  

但是Highcharts Date.UTC希望日期为:Date.UTC(2014,0,2)

如果您只想使用日期部分,并将其视为UTC,您可以这样做:

// Provide a string like 2014-06-23
function parseYMD(s) {
  var b = s.split(/\D+/);
  return new Date(Date.UTC(b[0], --b[1], b[2]));
}

如果您想要包含时间(以及它的UTC),请将最后一行更改为:

  return new Date(Date.UTC(b[0], --b[1], b[2], b[3], b[4], b[5]));

可在所有正在使用的浏览器中可靠地运行。请注意,在ISO 8601中,没有时区的日期应视为本地日期,而不是UTC。

请注意,在某些浏览器中,没有时区的ISO 8601字符串将被视为UTC,在其他浏览器中视为本地区域,其余浏览器视为NaN。