在 SQL 数据库中,我有一个来自不同时区的时间列表,但我既没有也不关心相应的时区信息:
2012-01-01 01:02:03
2012-07-01 04:05:06
为了输出,我想使用 Javascript 对它们进行格式化。我试过:
var text = input.replace(' ','T'); // SQL -> ISO8601
var d = new Date(Date.parse(text));
hours = d.getHours();
问题是在 Chrome 中,日期被解释为 UTC 并转换为我本地的时区,所以我得到:
2
6
而在 Firefox 中,它被解释为本地时间,我得到了我想要的:
1
4
Date 对象是否有更好的解决方案,还是我坚持拆分字符串?
最佳答案
我找到的唯一解决方案是将 -
替换为 /
:
input = "2012-01-01 01:02:03";
var text = input.replace('-', '/');
var d = new Date(Date.parse(text));
hours = d.getHours();
在我的例子中,输入是 2013-05-22T16:45:00Z
所以我也替换了 T
和 Z
:
input = "2013-05-22T16:45:00Z";
var text = input.replace(/[TZ]/, '').replace('-', '/');
var d = new Date(Date.parse(text));
hours = d.getHours();
这样 Javascript 就可以在不知道时区的情况下处理它并停止智能操作。
关于javascript - 在不转换为本地时区的情况下在 Javascript 中格式化日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12076212/