gpt4 book ai didi

javascript - 使用 setDate 时日期对象与预期不符

转载 作者:行者123 更新时间:2023-12-02 15:32:47 26 4
gpt4 key购买 nike

var start_date = new Date(ss.getSheetByName('3D Tracker').getRange('I119').getValue());

使用调试工具开始日期计算为Wed Oct 01 2014 00:00:00 GMT-0400 (EDT)我想创建一个新变量,该变量是 start 加 10 天。

var start = start_date;
var end = new Date(start.setDate(start.getDate() + 10));

记录器的输出是:

start: Sat Oct 11 2014 00:00:00 GMT-0400 (EDT)
end: Sat Oct 11 2014 00:00:00 GMT-0400 (EDT)

我预计开始时间为 2014 年 10 月 1 日星期三 00:00:00 GMT-0400,结束时间为 2014 年 10 月 11 日星期六 00:00:00 GMT-0400 (EDT)。不知何故,我的脚本在开始和结束时添加了 10 天,而我只在结束时添加了 10 天。

我错过了什么吗?环境是基于 Javascript 的 Google Apps 脚本。

最佳答案

setDate()首先修改它调用的 Date 对象,然后返回计算的值。因此,您将 start 从更新后的时间戳中移到创建 end 之前 10 天。

如果您想使用 setDate() 而不专门更改 start,则需要从中创建 new Date()首先。

var start = new Date(ss.getSheetByName('3D Tracker').getRange('I119').getValue());

var end = new Date(start.getValue()); // initially match `start`
end.setDate(end.getDate() + 10); // change to 10 days later
<小时/>

对于单行代码,您还可以计算新的时间戳,10 * 24 * 60 * 60 * 1000 等于 10 天内的毫秒数:

var end = new Date(start.getValue() + 10 * 24 * 60 * 60 * 1000);

关于javascript - 使用 setDate 时日期对象与预期不符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33191212/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com