【问题标题】:Script Trigger returning dates in US format (en expected)脚本触发器以美国格式返回日期(预期)
【发布时间】:2020-09-18 14:03:16
【问题描述】:

我将这个小脚本作为更大项目的一部分:

//get all trigger values from named ranges containing __
function triggers(e) {
  console.log("redirect");
  const ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/10JekLhXtlbkEfXJBB7HfIF4t3pyQQpKbPzTCJq0306o/edit#gid=465383306");
  ss.setSpreadsheetLocale('en');
  //const timeNow = Utilities.formatDate(new Date(), Session.getScriptTimeZone(),"dd/MM/YYYY").toString();
  const timeNow = new Date().toLocaleDateString();
  const triggers = ss.getNamedRanges().reduce( (acc,curr)=>{
           if (curr.getName().indexOf("__")>-1) {acc.push([curr.getName(), curr.getRange().getValue().toLocaleDateString()])}
           return acc;}, []);

console.log(triggers. timeNow);

//call switch function to redirect trigger to associated function
triggers.forEach(x => {if(x[1] == timeNow){triggerRedirs(x[0])}});
}

当我手动运行脚本时,返回的值返回为dd/MM/YYYY,这是正确的,但是当我通过触发器运行脚本时,所有返回的日期都采用MM/dd/YYYY 的格式。我已将链接的电子表格区域设置为英国,并且脚本项目时区是伦敦。

任何帮助都会很棒

【问题讨论】:

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


    【解决方案1】:

    尝试使用toLocaleDateString('en-GB') 指定区域设置。

    curr.getRange().getValue().toLocaleDateString('en-GB')
    

    Date.prototype.toLocaleDateString()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-18
      • 1970-01-01
      • 1970-01-01
      • 2011-08-21
      • 1970-01-01
      • 1970-01-01
      • 2018-03-03
      • 1970-01-01
      相关资源
      最近更新 更多