更新了Moment.js GAS库?

时间:2017-07-11 17:36:58

标签: google-apps-script momentjs

有没有人知道GAS的更新Moment.js库? Eric Koleda做了一个,但是很久以前并没有包含很多重要的更新,例如isBetween。

2 个答案:

答案 0 :(得分:2)

幸运的是,moment.js一旦构建就没有任何依赖关系,所以你可以简单地将moment.js代码复制到你的任何脚本整个销售中。

向您的Apps脚本添加一个新的脚本文件(比如说,请调用它。)并直接从moment/moment.js @ github复制原始代码,然后以通常的方式引用它:

var m = new moment();

通过这种方式,您可以拥有自己想要的任何版本,甚至可以使用自己的版本,并使用自己的版本作为库。

答案 1 :(得分:0)

除了添加@JSDBroughton的答案外,还有moment timezone package

因此,为了能够将Date转换为给定的时区,您还可以添加moment-timezone,然后可以进行如下操作:

var testCases = [
  {tz: 'America/New_York'},
  {tz: 'America/Santiago'},
  {tz: 'America/Mexico_City'},
  {tz: 'America/Sao_Paulo'},
];

var m = new moment(new Date());
Logger.log('current moment=%s', m.format());
testCases.forEach(function(tc) {
  Logger.log('%s: %s', tc.tz, m.clone().tz(tc.tz).format());
});

这将是最新的,包括夏时制等。

为此,在创建脚本文件moment.gs时,还必须包括moment-timezone.js,如下所示:

脚本文件[moment.gs]

[contents_from_moment_js]

[contents_from_moment-timezone_js]

moment.tz.load([contents_from_zones_json]);

contents_from_moment_js

contents_from_moment-timezone_js

contents_from_zones_json

它看起来有点像:

//! moment.js
;(function (global, factory) {
    typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
    typeof define === 'function' && define.amd ? define(factory) :
    global.moment = factory()
}(this, (function () { 'use strict';
[...]
[...]

//! moment-timezone.js
//! version : 0.5.27
//! Copyright (c) JS Foundation and other contributors
//! license : MIT
//! github.com/moment/moment-timezone
(function (root, factory) {
    "use strict";
[...]
[...]

moment.tz.load({
    "version": "2019c",
    "zones": [
        "Africa/Abidjan|LMT GMT|g.8 0|01|-2ldXH.Q|48e5",
        [...]
        [...]
    ]
});
相关问题