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

标签 javascript momentjs

使用 bower 安装 moments-timezone 后:

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

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

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

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

更新:

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

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

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

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

moment.tz.load(filteredLinkedPackedBundle);

最佳答案

引用the Data Loading documentation . moment.tz.addmoment.tz.link 方法可用于加载单个区域和链接,或者您可以使用 moment.tz.load 加载包含多个区域的 JSON 数据。

使用数据的打包版本,来自 /data/packed在 repo 协议(protocol)中。 latest.json 包含当前版本的完整数据文件。您可以编辑此文件以删除您不关心的信息。

不过,最简单的方法是只使用来自 the moment-timezone main page 的文件之一。已经包含数据。

website

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

  • moment-timezone-2010-2020.js 包含脚本和所有时区的数据,已 chop 以仅包含最近几年的更改。

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

您不需要修改脚本本身,因为数据可以单独加载。脚本中的 //INJECT DATA 注释只是 moment-timezone 构建过程的占位符,用于在为网站构建文件时知道将数据放置在何处。

关于javascript - 准备和使用带有区域和年份子集的 moment-timezone.js 的步骤是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36007199/

相关文章:

javascript - 标题中没有 no-cors 无法获取 POST

javascript - Angular 日期选择器的行为完全不符合预期

javascript - 错误: Object doesn't support property or method 'moment'

javascript - Bootstrap 3 Datepicker v4 - 无法将日期设置为 0 到 14400000 之间的值

javascript - 使用 popcorn.js 迭代 cue 方法

javascript - 检测输入占位符是否可见

javascript - 当我使用 moment 解析时,Moment.js 2 个不同的日期字符串给出相同的值

javascript - 如何从javascript中的两个日期获取天数和精确分钟数、精确小时数?

javascript - 如何将表达式仅应用于数字而不是字符串

javascript - ExpressJS 不等待我的 promise