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



我有以下格式的datetime对象:2014-06-24 20:41:18但Highcharts日期。UTC期望的日期如下:Date.UTC(2014, 0, 2) .

推荐的转换方式是什么?

我有datetime对象在以下格式:2014-06-24 20:41:18

这不是一个"datetime对象",它是一个字符串。不要使用Date构造函数来解析字符串,它会调用Date。解析已知在浏览器中是不一致的,即使对于符合ECMA-262版5格式的字符串。

but Highcharts日期。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。

最新更新