Javascript 将新时区添加到矩.js时区

Javascript 将新时区添加到矩.js时区,javascript,datetime,timezone,momentjs,Javascript,Datetime,Timezone,Momentjs,我必须在moment.js中添加“Asia/曼谷”(ICT),因为默认情况下它似乎不支持它 加载moment.js和moment-timezone.js后,我尝试定义以下特定时区: 然而,我不断得到错误: “矩时区没有亚洲/曼谷的数据。请参阅 " 想知道为什么吗?我想发布我的解决方案,供其他正在与文档糟糕的moment.js API作斗争的人使用 要创建时区,必须创建未打包的时区对象: var unpacked = { name : 'Asia/Bangkok', abbr

我必须在moment.js中添加“Asia/曼谷”(ICT),因为默认情况下它似乎不支持它

加载moment.js和moment-timezone.js后,我尝试定义以下特定时区:

然而,我不断得到错误:

“矩时区没有亚洲/曼谷的数据。请参阅 "


想知道为什么吗?

我想发布我的解决方案,供其他正在与文档糟糕的moment.js API作斗争的人使用

要创建时区,必须创建未打包的时区对象:

var unpacked = {
    name    : 'Asia/Bangkok',
    abbrs   : ['ICT'],
    untils  : [null],
    offsets : [-420]
};
*请注意,当ITC为UTC+7时,由于某些原因,阵列中的UTC偏移量必须是7*60=420的相加逆(负)*

在使用它之前,您还必须打包此对象,为此,您需要包含矩-timezone-utils.js

var packed=moment.tz.pack(未打包)

它将输出压缩时区格式,部分编码为60进制:
亚洲/曼谷| ICT |-70 | 0 |

现在可以添加:
moment.tz.add('亚洲/曼谷| ICT |-70 | 0 |')


如果您不想经历所有这些麻烦,还有一个,您可以选择所需的时区。

也许文档更好:。是的,我就是从这里开始的,但是配置格式没有很好地解释,我没有找到一个简单易懂的示例,如何为ICT这样的自定义时区构建分区数据“美国/洛杉矶PST PDT 80 70 01010101010 1Lzm0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 1zb0”
。我认为OP中的数据格式是错误的,这里解释了解包格式:。如何使用预打包的文件?我正在获取
moment.tz.pack不是函数。您使用的是哪个版本?我的是
时刻时区:^0.5.28
var unpacked = {
    name    : 'Asia/Bangkok',
    abbrs   : ['ICT'],
    untils  : [null],
    offsets : [-420]
};