我正在尝试找出当前日期和文件创建日期之间的天数。目的是删除距离当前日期不超过 4 天的文件。
我使用了下面的应用程序脚本,但差异在控制台中给了我一个“NaN”输出
function iterateFolder() {
var folder = DriveApp.getFolderById('XXXXXXXXXXX');
console.log('Folder: ', folder.getName());
var files = folder.getFiles();
var currentDate = new Date();
var modifiedDate = Utilities.formatDate(currentDate, 'Australia/Adelaide', 'dd-MM-yyyy');
console.log('Now: ', modifiedDate);
while(files.hasNext()){
var file = files.next();
var createdDate = file.getDateCreated();
var modifiedCreatedDate = Utilities.formatDate(createdDate, 'Australia/Adelaide', 'dd-MM-yyyy');
console.log('File: ', file.getName(), ' Created On: ', modifiedCreatedDate);
console.log('Difference: ', modifiedDate - modifiedCreatedDate); // Gives NaN
}
}
Apps Script 不会将日期视为字符串。Apps
Date
Script 中的对象基于 JavaScript 中的对象构建Date
,即...一个Date
对象。使用日期进行数学运算是可能的,如以下非常简单的代码片段所示:事实上,这正是 4thAnd1 在他的回答中所做的。
问题在于,在您的代码中,将日期
Utilities.formatDate
转换为字符串。并且无法对字符串进行算术运算。建议使用 来对日期进行数学运算
Date.getTime
。因此,您的代码应类似于:参考
获取两个日期之间的天数
代码的修改版本将为您提供两个日期之间的差值(以天为单位)
示例输出
参考:计算日期之间的差异