function testEvent(){
var date = new Date();
var start = todayStart(date);
var end = tomorrowEnd(date);
}
function todayStart(date123){
var dateHolder = date123;
dateHolder.setHours(15, 0, 0, 0);
return dateHolder;
}
function tomorrowEnd(tomorrow){
var dateHolder1 = tomorrow;
dateHolder1.setDate(tomorrow.getDate() + 1);
dateHolder1.setHours(14, 59, 59, 59);
return dateHolder1;
}
我遇到上述代码的问题。结束和开始都返回14:59:59:59,除非我评论结束,然后结果开始时间为15:00:00:00。结束后开始,所以我不知道这里有什么问题。为什么最终被注释出来解决问题(在某种程度上),但它存在导致问题。对不起,如果之前已经询问过,但具体的帮助总是最容易的。此外,这是谷歌应用程序脚本。
答案 0 :(得分:0)
您将同一个Date对象传递给todayStart和tomorrowEnd,并且它们都操纵该对象。因为明天是最后一件事,这就是你所看到的结果。
答案 1 :(得分:0)
对象在Javascript中通过引用传递。这里需要两个单独的对象。 试试这个:
function testEvent(){
var startdate = new Date();
var enddate = new Date();
var start = todayStart(startdate);
var end = tomorrowEnd(enddate);
}
答案 2 :(得分:0)
下面是代码的工作版本,如创建单独日期对象所需的其他答案中所述;
function testEvent(){
var date = new Date();
var start = todayStart(date);
var end = tomorrowEnd(date);
Logger.log('start = '+start+' end = '+end);
}
function todayStart(date123){
var dateHolder = new Date(date123);
dateHolder.setHours(15, 0, 0, 0);
return dateHolder;
}
function tomorrowEnd(tomorrow){
var dateHolder1 = new Date(tomorrow);
dateHolder1.setDate(tomorrow.getDate() + 1);
dateHolder1.setHours(14, 59, 59, 59);
return dateHolder1;
}
结果: