尝试从定义的日期减去5天 - Google App Script

use*_*481 2 date-arithmetic google-apps-script

我正在尝试编写一个脚本,该脚本应该在提交表单时发送电子邮件并创建两个日历条目.说实话,这是我的第一个脚本,我很高兴电子邮件发送出去,日历条目也正常.令我头疼的是从定义的日期减去5天(实际上是x天).

首先,我认为我可以简单地做一些事情

var liveday = e.values[2];
var newday = liveday-5;
Run Code Online (Sandbox Code Playgroud)

好吧,这不起作用:-)

我尝试了更多:

var newtime = new Date(liveday);
var yr = newtime.getYear();
var dt = newtime.getDay();
var mt = newtime.getMonth();
var dtnew = dtnew.setDate(mt, dt-5, yr);
Run Code Online (Sandbox Code Playgroud)

但在这里我收到了1418256000000liveday = 12/01/2014.不确定为什么添加天数而不是减去天数.

我在这里很困惑,答案不会那么难.

我只想从2014年1月12日减去5天,即可获得11/27/2014.

谢谢你看看

Ser*_*sas 14

评论发送给你一个相当复杂的代码系列...有一个更简单的方法来获得它,这是代码:

function test() {
  Logger.log('today= '+new Date()+'  and 5 days ago is '+subDaysFromDate(new Date(),5));
}

function subDaysFromDate(date,d){
  // d = number of day ro substract and date = start date
  var result = new Date(date.getTime()-d*(24*3600*1000));
  return result
}
Run Code Online (Sandbox Code Playgroud)

记录器结果:

[13-11-18 23:39:50:364 CET] today= Mon Nov 18 2013 23:39:50 GMT+0100 (CET)  and 5 days ago is Wed Nov 13 2013 23:39:50 GMT+0100 (CET)
Run Code Online (Sandbox Code Playgroud)

如果您想以dd/mm/yyyy使用的形式获取日期Utilities.formatDate(date, timeZone, 'dd/MM/yyyy),请参阅此处的 doc