Date.toLocaleString使用区域设置格式但不调整时区?

时间:2013-09-09 08:19:30

标签: javascript date locale

我的图表(我不想修改的复杂JS库)需要本地时间的Javascript时间戳(图表不会针对时区和DST进行调整,因此必须在数据库端完成。 )用于绘制时间轴 - 源数据几乎是不可触及的。

我使用相同的数据来显示工具提示,这几乎是“我自己做饭”,以显示数据点的精确值。

现在出现了问题:

  • 如果我使用Date(x).toUTCString(),我会根据国际区域设置显示正确的值 - 英文月份和日期名称等。
  • 如果我使用Date(x).toLocaleString()我获得了正确的格式,但显示的日期因我的时区+ DST偏移而关闭;它已经在服务器端添加,现在该功能再次添加它。

Date(x).toStringDate(x).toGMTString也没有帮助。

如何获得非时区调整的区域设置格式的日期?

1 个答案:

答案 0 :(得分:-1)

实现这一目标的方法是初始化Date对象以包含GMT中的正确时间,而不是将其初始化为当地时间,然后它认为是GMT并在重新初始化期间重新调整。 为此,我们滥用Date的{​​{1}}构造函数语法。这违反了标准,但适用于所有主流浏览器:

Date(Year,Month,day,hour,minute,seconds,ms)

这将打印正确本地化的字符串, Date(0,0,0,0,0,0,x).toLocaleString(); 包含本地时间戳。

如果x不是包含毫秒数的int,而是日期错误的javascript Date对象,请使用:

x