准备和使用具有区域和年份子集的moment-timezone.js的步骤是什么

时间:2016-03-15 09:27:41

标签: javascript momentjs

用凉亭安装时刻 - 时区后:

我看到有最新时区数据的打包和解压缩版本。

在moment-timezone.js中,我看到有一个占位符// INJECT DATA,我认为我应该插入我感兴趣的数据的打包版本。

我看到我的moment-timezone-utils.js包含打包/解包/过滤数据的方法。

我是否应该使用所有这些来离线准备我所需的数据版本,而不是插入输出结果而不是// INJECT DATA占位符?

更新

由于Moment主页中的“数据”部分目前正在“即将推出......”我目前所做的是手动离线运行:

JSON.stringify(moment.tz.filterLinkPack(unpackedBundle, startYear, endYear));

我从\ data \ unpacked文件夹中获取了 unpackedBundle json对象。

然后在我的java脚本代码中将结果加载到moment-timezone。

moment.tz.load(filteredLinkedPackedBundle);

1 个答案:

答案 0 :(得分:1)

请参阅the Data Loading documentationmoment.tz.addmoment.tz.link方法可用于加载单个区域和linke,或者您可以使用moment.tz.load加载包含多个区域的JSON数据。

使用回购中来自/data/packed的数据的打包版本。 latest.json包含当前版本的整个数据文件。您可以编辑此文件以删除您不关心的信息。

最简单的方法是使用已包含数据的the moment-timezone main page中的一个文件。

website

  • moment-timezone.js不包含任何数据,只包含脚本。使用上述功能。

  • moment-timezone-2010-2020.js包含脚本和所有时区的数据,这些数据被截断以包含最近几年的更改。

  • moment-timezone-all-years.js包含脚本以及所有年份所有时区的时区数据。它与使用moment-timezone.js文件和加载latest.json数据包基本相同。

您无需修改​​脚本本身,因为可以单独加载数据。脚本中的// INJECT DATA注释只是一个占位符,用于片刻时区的构建过程,以便在构建网站文件时知道数据的放置位置。