我试图在google应用程序脚本中减去以下解决方案:Trying to subtract 5 days from a defined date - Google App Script
然而,如果我们从一年的第一天起减去一天,那一年就不会减1。以下是我的代码:
var StartDate = new Date(ResponceDetails[C3StartDate]);
var StartYear = StartDate.getYear();
var StartMonth = StartDate.getMonth();
var StartDay = StartDate.getDate();
var tempEndDate = new Date(StartYear+1, StartMonth, StartDay);
Logger.log(StartDate);
Logger.log(tempEndDate);
var EndDate = Utilities.formatDate(new Date(tempEndDate.getTime()-(24*3600*1000)),"GMT+8","MM/dd/YYYY");
Logger.log(EndDate);
此代码的目的是计算用户一年后的到期日(包括开始日期)。因此,它必须是加一年,减去1天。上面的代码可以吗?或者其他有类似问题的人?
谢谢
发布于 2020-01-01 17:03:35
解决了我的问题!YYYY年必须是Utilities.formatDate(.)中的小写字母
更新后的守则:
var StartDate = new Date(ResponceDetails[C3StartDate]);
var StartYear = StartDate.getYear();
var StartMonth = StartDate.getMonth();
var StartDay = StartDate.getDate();
var EndDate = Utilities.formatDate(new Date(StartYear+1, StartMonth, StartDay-1), "GMT+8", "MM/dd/yyyy");但是任何更好的方法都是非常感谢的。如果有人在日期格式上有一份好的文档或参考资料,解释日期格式的细节确实有帮助。非常感谢!
发布于 2020-01-01 20:38:38
function calcDate() {
var date=new Date();
var dueDate=new Date(date.getFullYear()+1,date.getMonth(),date.getDate()-1);
Logger.log(Utilities.formatDate(date, Session.getScriptTimeZone(), "yyyy/MM/dd"));
Logger.log(Utilities.formatDate(dueDate, Session.getScriptTimeZone(), "yyyy/MM/dd"));
var tomorrow=new Date(date.getFullYear(),date.getMonth(),date.getDate()+1);
Logger.log(Utilities.formatDate(tomorrow, Session.getScriptTimeZone(), "yyyy/MM/dd"));
}发布于 2020-01-01 17:25:17
我更喜欢使用JS getTime()方法。它返回自1/1/1970以来的毫秒数。
然后,您可以以毫秒为单位增加/减去时间。
function add_A_Day() {
var StartDate = new Date(ResponceDetails[C3StartDate]).getTime();
var EndDate = StartDate + 24 * 60 * 60 * 1000; // One day in milliseconds
EndDate = new Date(EndDate);
EndDate = Utilities.formatDate(EndDate, 'GMT+8', 'MM/dd/yyyy');
Logger.log(EndDate);
}https://stackoverflow.com/questions/59554220
复制相似问题