有没有人知道GAS的更新Moment.js库? Eric Koleda做了一个,但是很久以前并没有包含很多重要的更新,例如isBetween。
答案 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-timezone_js
它看起来有点像:
//! 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",
[...]
[...]
]
});