Google App脚本在日期中添加一天

Dan*_*ard 1 google-apps-script

我不知道如何在Google App脚本中为日期添加一天。我有这个脚本:

function dateTest() {

var testDate = new Date();
var secondDate = new Date(testDate.getDate()+1);

 Logger.log(testDate);
 Logger.log(secondDate);
}
Run Code Online (Sandbox Code Playgroud)

产生以下日志:

[16-11-30 16:35:02:499 GMT] 2016年11月30日星期三16:35:02 GMT + 00:00 2016

[16-11-30 16:35:02:500 GMT]星期四1月1日01:00:00 GMT + 01:00 1970

我不明白为什么不加上日期?

Bar*_*rdy 10

getDate()获取该月的日期。如果您将一个数字传递给 中的 Date 构造函数new Date(value),它期望该数字是自 Unix 纪元以来的毫秒数,请参阅MDN 上的 Date。因此,您要在 unix 纪元上添加 31 毫秒(今天),因此日期是 1970 年 1 月 1 日,还有一点点。

要添加一天,请尝试:

var secondDate = new Date(testDate.getTime() + 24 * 60 * 60 * 1000);
Run Code Online (Sandbox Code Playgroud)

这会添加一天中的毫秒数testDate并从中创建一个新的日期。

getTime()获取自 Unix 纪元以来以毫秒为单位的日期表示形式,因此通过将一天中的毫秒数添加到其中,您可以创建一个 +1 天的新日期。


Ami*_*wal 5

你也可以说:

var tomorrow = new Date(Date.now() + 1000*60*60*24)
Run Code Online (Sandbox Code Playgroud)


Kar*_*l_S 5

更改为:

var testDate = new Date();
var secondDate = new Date();
secondDate.setDate(testDate.getDate()+1);
Run Code Online (Sandbox Code Playgroud)

这应该使白天对于夏令时的更改以及leap年都有利。

  • 这里有一个潜在的问题需要记住,这取决于你用它来做什么。`getDate` 获取该月的日期,即今天是“14”,而不是 2020 年 2 月 14 日。如果您使用它来比较日期,您可能会遇到问题。例如,如果您想知道今天的日期是否大于 X 日期?2/1/2020 和 4/1/2020 都会返回 true,因为 14 > 1。 (4认同)