Javascript 明确而有用的时间格式
我可以为访客生成本地格式的时间:Javascript 明确而有用的时间格式,javascript,date,time,timezone,Javascript,Date,Time,Timezone,我可以为访客生成本地格式的时间: var expires = XXXX $('#expires').text(new Date(expires).toLocaleTimeString()) 例如,这将生成12:05:46 PM。然而,这对访问者来说是模棱两可的。这是因为我们经常习惯于不正确计算时区的网站 这将是更好的生产:12:05:46下午美国东部夏令时为我和上帝知道什么为其他人。这可能吗?要在输出中获得缩写,请将时区名称:'short'作为选项之一传递。这将适用于支持ECMAScript国
var expires = XXXX
$('#expires').text(new Date(expires).toLocaleTimeString())
例如,这将生成12:05:46 PM。然而,这对访问者来说是模棱两可的。这是因为我们经常习惯于不正确计算时区的网站
这将是更好的生产:12:05:46下午美国东部夏令时为我和上帝知道什么为其他人。这可能吗?要在输出中获得缩写,请将
时区名称:'short'
作为选项之一传递。这将适用于支持ECMAScript国际化API(ECMA-402)的现代浏览器
var s=new Date().toLocaleTimeString(未定义,{timeZoneName:'short'});
控制台日志然后,只需传递适当的参数即可生成所需的格式。(顺便说一句,我不认为没有时区的时间有任何模糊性。人们只是假设所有时间都是本地的。)“EDT”不是一个“合适”的时区。时区名称未标准化,一些名称和缩写重复,没有告诉您实际偏移量是多少(例如,什么是LHST及其当前偏移量是多少)。如果您确实想要一个明确的时区偏移,请使用±HHmm或±HH:mm。因此,您可以使用-0400或-04:00来代替“EDT”。将我的时区设置为,Safari、Chrome和Firefox会给出“GMT+11”。我想OP应该期望类似“NIST”或类似的东西,但我不知道该时区使用什么名称或缩写。甚至澳大利亚的布里斯班也给出了“GMT+10”(我喜欢它,因为它是明确的)。将语言设置为“en us”不会更改时区,它会更改日期和时间部分使用的语言和格式。;-)是的,不幸的是,世界无法就时区缩写达成一致。本API中的缩写来自ICU,来自CLDR。布里斯班也有,但仅限于en-AU
和en-NZ
地区。出于某种原因,CLDR认为时区缩写应该只适用于特定的地区-因此你不会在en-US
或en-GB
等中看到它们。换句话说,这应该有效:new Date().toLocaleTimeString('en-AU',{timeZoneName:'short',timeZone:'Australia/Brisbane')
。对于诺福克来说,CLDR根本没有缩写,IANA也没有,所以T&D是由T&D组成的。我想这是使用语言代码作为区域设置的问题,并且假设某个区域设置中的每个人都使用某种格式。对我来说,这两个概念是截然不同的,不知何故,它们被混淆为同一事物,或者当它们不存在时,它们之间有着很强的相关性。我以前可能说过这句话时区和地点当然是不相关的。但我认为语言+国家/地区+选项的组合构成了一个相当合理的文化/地区代码。win的IETF语言标签。:)