the*_*eks 14 javascript timezone momentjs
使用moment.js(使用moment-timezone),我想获得当前语言环境的时区缩写(例如PST).
var now = Date.now(); // 1423254073931
var zone = moment(now).zone(); // 480
var timezone = 
我如何获得时区缩写?我在文档和其他地方看到的所有示例都选择了一个特定的区域"America/New_York".
从文档,它看起来像我可以得到信息的的区段对象具有zone.abbr(timestamp),但我不知道如何来访问区域对象.
Mat*_*int 31
标题和问题是不同的.在标题中,您询问如何使用偏移来获取它 - 这是不可能的.有许多时区共享相同的偏移量,因此无法区分时区缩写和单独的偏移.
但是在这个问题中,您询问了如何获取当前区域设置的缩写,以获取特定的时间戳.
一般问题是,没有完全可靠的方法来检测当前时区.这个在这个答案中讨论.因此,时刻 - 时区无法确定地告知默认情况下应加载哪个时区.
还有其他一些选择.
在某些浏览器中,对象的功能支持ECMAScript国际化API扩展.如果支持,您可以这样做(没有时间):toLocaleStringDate
var d = new Date(); // or whatever date you have
var tzName = d.toLocaleString('en', {timeZoneName:'short'}).split(' ').pop();
在支持的浏览器中,您将获得类似"EST"的值.您可能希望进行某种测试,因为它不适用于所有浏览器.
您可以使用jsTimeZoneDetect之类的脚本来猜测本地时区.这通常是正确的,但不能保证.然后,您可以将该值传递给时刻时区.
var tzName = jstz.determine().name();
var m = moment();
var abbr = m.tz(tzName).zoneAbbr();  // or .format('z')
现在还有对time -timezone中的时区检测/猜测的内置支持:
var tzName = moment.tz.guess();
var abbr = m.tz(tzName).zoneAbbr();  // or .format('z')
| 归档时间: | 
 | 
| 查看次数: | 22544 次 | 
| 最近记录: |