我试图在JavaScript中输出日期。该页面将由民间在多个时区和语言中使用,我认为最好使用toLocaleString()
。
我已经尝试过MSDN中的示例,但它不起作用:
var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
document.write(date.toLocaleString('en-US', { hour12: false }));
// → "12/19/2012, 19:00:00"
但我得到了
12/20/2012, 03:00:00
我在Linux和Windows上尝试了一些浏览器,但我得到了相同的结果。我有什么明显的遗失吗?
答案 0 :(得分:2)
toLocaleString
方法是关于格式化,它将日期格式化为美国英语格式,它不关心时区,也不关心。
如果你想处理时区,我绝对建议使用像 MomentJS 这样的库,不幸的是,与时间一起工作是一种痛苦的JavaScript(在大多数语言中都是公平的)。但是,如果您想要使用原生JS,那么请查看getTimezoneOffset
方法。
答案 1 :(得分:1)
Date.UTC
的第四个参数是小时(0到23)所以在你的情况下,如果你位于“零”时区,那么它是03:00:00。 MSDN示例可能是由坐在例如西雅图。