如何在Google Apps脚本中使用locale moment.js?

时间:2015-07-21 23:10:38

标签: javascript google-apps-script google-sheets

我尝试将此库http://momentjs.com/与密钥MHMchiX6c1bwSqGM1PZiW_PxhMjh3Sh48 How do I use momentsjs in Google Apps Script?

一起使用
var moment = Moment.load();
var d = moment().format("DD MMMM YYYY");
Logger.log(moment(d).format('LL'));

我用英语给出了正确格式的日期,但我需要用俄语。当我添加这一行时:

var moment = Moment.load();
moment.locale('ru');
var d = moment().format("DD MMMM YYYY");
Logger.log(moment(d).format('LL'));

它没有工作,我收到通知 - 无法在对象函数(b,c,d,e){...}中找到函数区域设置。我的代码中有问题吗?

2 个答案:

答案 0 :(得分:1)

您需要包含区域设置的库 - 位于此处: https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.3/moment-with-locales.js 您还有一些编码错误:

var d = moment().format("DD MMMM YYYY");

此时d是文本字符串 - 不是时刻对象。 试试这个:

moment.locale('ru');
var d = moment();
Logger.log(d.format('LL'));

应该工作..

但请注意,moment.js本身并不支持区域设置。

答案 1 :(得分:1)

使用最新的moment.js(2.18.1)你可以这样做:

function testMomentLocaleRussian() {
  eval(UrlFetchApp.fetch('https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment-with-locales.js').getContentText());

  moment.locale('ru');
  var m = moment();
  Logger.log(m.format('LL'));
}

为了使用最新的moment.js从google应用程序脚本中删除旧库,只需使用上面示例中的eval(UrlFetchApp.fetch。用最新版本替换2.18.1。

此链接提供了cdnjs(或您自己服务器上的主机moment.js)可以使用的所有moment.js版本:

  

https://cdnjs.com/libraries/moment.js/