我在尝试将此日期从 API 转换为 UTC 毫秒时遇到了最困难的时间。截至目前,我正在显示日期,但它显示的是提前 7 小时并持续到第二天,我什至没有数据。以下是示例格式:
8/31/2012 9:00:00 AM
我目前有此代码
var formattedDate = new Date(data[i].Time);
formattedDate = formattedDate.getTime();
看起来它返回了正确的值类型,但日期是错误的。我也尝试过 getUTCMilliseconds() 并返回 0。
编辑:jsfiddle 示例:http://jsfiddle.net/b2NK6/
最佳答案
所以您想要 UTC 时间而不是本地时间的原始时间戳?
比较:
(new Date(Date.UTC(2012, 7, 31, 9, 0, 0, 0))).getTime(); /* month 7 is August */
与
(new Date(Date.parse("8/31/2012 9:00:00 AM"))).getTime();
当您解析字符串(第二个示例)时,它会在创建日期对象时应用您的本地时区信息。如果您位于 -0700 时区,则创建的日期实际上对应于 UTC 下午 4:00。
但是,如果您通过明确指定 UTC 值来创建日期对象,它将为您提供 UTC 上午 9:00,对应于时区 -0700 的凌晨 2:00。
经过编辑以提供更清晰、更正确的代码示例。
关于javascript - 无法将 highstock 的时间转换为 UTC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12273430/