【问题标题】:Trying to subtract 5 days from a defined date - Google App Script尝试从定义的日期减去 5 天 - Google App Script
【发布时间】:2013-12-02 06:31:14
【问题描述】:

我正在尝试编写一个脚本,该脚本应该在提交表单时发送一封电子邮件并创建两个日历条目。老实说,这是我的第一个脚本,我很高兴电子邮件已发送并且日历条目也正常工作。让我头疼的事情是从定义的日期中减去 5 天(实际上是 x 天)。

首先我认为我可以简单地做一些类似的事情

var liveday = e.values[2];
var newday = liveday-5;

好吧,这没有用:-)

我尝试了更多:

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);

但在这里我收到了1418256000000,而 liveday = 12/01/2014。不知道为什么增加了天数,而不是减去了天数。

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

我只想从 2014 年 12 月 1 日减去 5 天,得到 2014 年 11 月 27 日。

感谢观看

【问题讨论】:

标签: google-apps-script date-arithmetic


【解决方案1】:

评论将您发送到一系列相当复杂的代码......有一个更简单的方法可以得到它,这里是代码:

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
}

记录器结果:

[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)

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

【讨论】:

  • 这太棒了 :-) 非常感谢!!
  • 确实,一个非常优雅的解决方案。
猜你喜欢
  • 2023-02-13
  • 1970-01-01
  • 2012-04-29
  • 2012-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-12
  • 1970-01-01
相关资源
最近更新 更多