我将日期值存储在两个变量中,一个是单个值,另一个是数组。第一个是字符串,另一个是从Google表格获取的数组。底线是,保存到变量时,一个保存为[Tue Jul 31 00:00:00 GMT + 01:00 2018],另一个保存为[Tue Jul 31 06:00:00 GMT + 01:00 2018 ],因此当我尝试在包含第二个示例的数组中查找第一个匹配日期时,找不到匹配项。
var cur_date = new Date('7/31/2018')
var date_array =
sales_sheet.getRange(index,9,last_row_current,1).getValues();
我觉得解决此问题的最简单方法是将cur_date中的值强制设置为0600,但我不知道该怎么做。我们非常感谢您能使这些值相匹配。
cur_date = [2018年7月31日星期二00:00:00 GMT + 01:00] date_array = [Tue Jul 31 06:00:00 GMT + 01:00 2018](有很多值,但第一个是我希望匹配的值)
Google工作表中的第一个值为7/3/12018 ..
答案 0 :(得分:0)
日期构造函数不返回日期/时间,仅返回日期。
通过将new Date()
传递给方法Utilities.formatDate()
,正确设置日期格式以进行比较。
您仅通过以下内容:
var cur_date = new Date('7/31/2018');
Logger.log(cur_date);
//returns 'Tue Jul 31 00:00:00 GMT+01:00 2018'
要获得期望的结果,还需要花一些时间:
var cur_date = new Date('7/31/2018 06:00:00');
Logger.log(cur_date);
//returns 'Tue Jul 31 06:00:00 GMT+01:00 2018'
这是预期的行为,如果您不首先将时间传递给日期构造函数,则日期构造函数将无法打印时间。
因此,要比较日期,可以在Utilities.formatDate()
中使用日期构造函数,以便脚本可以成功比较两者(使用您构造的日期而不是默认的当前日期/时间),请记住您还需要将时间传递到new Date()
,如果您也想比较一下。
var cur_date = Utilities.formatDate(new Date(),'GMT+1','M/dd/yyyy hh:mm:ss');
new Date()
(用于日期构造函数)。Utilities.formatDate()
用于在Google Apps脚本中格式化日期。