ors*_*zky 1 javascript timezone datetime momentjs
我必须将"亚洲/曼谷"(ICT)添加到moment.js,因为它似乎默认不支持它.
加载moment.js和moment-timezone.js后,我尝试按照此示例定义此特定时区:
moment.tz.add({
"zones": {
"Asia/Bangkok": [
"6:42:4 - LMT 1880 6:42:4",
"6:42:4 - BMT 1920_3 6:42:4",
"7 - ICT"
],
}
});
var currentTimeString = moment().tz('Asia/Bangkok').format('DD MMM YYYY, HH:mm:ss');
Run Code Online (Sandbox Code Playgroud)
但是,我一直收到错误:
"Moment Timezone没有亚洲/曼谷的数据.请参阅 http://momentjs.com/timezone/docs/#/data-loading/."
有什么想法吗?
ors*_*zky 13
我想发布我的解决方案,因为其他人正在努力解决那些记录严重的moment.js API ...
要创建时区,您必须创建一个解压缩的时区对象:
var unpacked = {
name : 'Asia/Bangkok',
abbrs : ['ICT'],
untils : [null],
offsets : [-420]
};
Run Code Online (Sandbox Code Playgroud)
*请注意,虽然ITC为UTC + 7,但由于某种原因,阵列中的UTC偏移必须是7*60 = 420的加法逆(负).*
在使用它之前,您还必须打包此对象,为此您需要包含moment-timezone-utils.js
var packed = moment.tz.pack(unpacked);
它会吐出部分编码在Base 60中的压缩时区格式:
Asia/Bangkok|ICT|-70|0|
现在它可以添加:
moment.tz.add('Asia/Bangkok|ICT|-70|0|');
如果您不想经历所有这些麻烦,GitHub上还有一个预先打包的文件,您可以在其中选择所需的时区.
| 归档时间: |
|
| 查看次数: |
5891 次 |
| 最近记录: |