【问题标题】:Subtract date google spreadsheet script减去日期谷歌电子表格脚本
【发布时间】:2013-03-31 18:43:38
【问题描述】:

我有一个看起来很小的问题......

我在 Google 电子表格中设置了一个脚本,它返回当前的月份和年份并将其放入一个单元格中。 (这构成了更大工作表的一部分,因此我确实需要在脚本中执行此操作)。我似乎无法显示上个月,这是我想要的,因为这是上个月的报告。

因此,例如,如果我想在 2013 年 3 月报告,如何让单元格使用当前日期显示此内容,或者有更好的方法吗?

我目前正在执行此操作,但由于在第 9 行的参数列表后出现错误“丢失)”

,因此计算卡住了
function myFunction() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

var today_date = Utilities.formatDate(new Date(), "GMT", "MMMM yyyy");

var date = sheet.getRange("A2");
date.setValue(today_date);

date.setFormula("=EDATE("today_date",-1)");

}

或者我可以通过在 Utilities.formatDate(new Date(), "GMT", "MMMM yyyy") 中添加一些内容来做到这一点;

非常感谢您的帮助。

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    正确的 Javascript 应该是:

    date.setFormula("=EDATE(" + today_date + ",-1)");

    但不幸的是,这在电子表格方面不起作用。你需要这样的东西才能让它工作:

    date.setFormula('=EDATE(VALUE("1 ' + today_date + '");-1)');

    大概你希望它被格式化为 MMMM yyyy:

    date.setFormula('=TEXT(EDATE(VALUE("1 ' + today_date + '");-1);"MMMM yyyy")');

    话虽这么说,但这样做似乎有点复杂。你可以用 Javascript 做到这一点:

    function monthOffset(date, months) {
      //returns the first day of the month with the required months offset
      var result = new Date();
      result.setFullYear(date.getFullYear(), date.getMonth() + months, 1);  
      return result;
    }
    

    然后在你的主函数中使用:

    var calc_date = Utilities.formatDate(monthOffset(new Date(), -1), "GMT", "MMMM yyyy");

    https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-12
      • 1970-01-01
      • 1970-01-01
      • 2012-06-15
      • 1970-01-01
      • 1970-01-01
      • 2018-09-16
      相关资源
      最近更新 更多