【发布时间】:2021-11-24 20:30:45
【问题描述】:
我正在尝试完成一个 google 表单的脚本,该脚本将使用表单中的数据输入重新命名通过表单上传的上传文件。我希望日期格式为 yyyy.MM.dd。默认情况下,我的日期变量将表单的日期字段输出为 yyyy-MM-dd。
我尝试添加一个格式化日期变量来重新格式化日期,但随后它停止从表单中读取日期,而是以正确的 yyyy.MM.dd 格式输出今天的日期。
任何关于如何让脚本将表单字段中的日期格式化为 yyyy.MM.dd 的提示将不胜感激!
我有以下 -
var form=FormApp.getActiveForm();
// returns the total number of form submissions
var length=form.getResponses().length;
var date=form.getResponses()[length-1].getItemResponses()[1].getResponse();
var formattedDate = Utilities.formatDate(new Date(),'America/Los_Angeles','yyyy.MM.dd');
var transaction=form.getResponses()[length-1].getItemResponses()[2].getResponse();
var id=form.getResponses()[length-1].getItemResponses()[7].getResponse();
var file=DriveApp.getFileById(id);
name = file.getName();
var name = formattedDate + ' - ' + transaction + ' - ' + name.split(' - ')[1]
file.setName(name);
}
在我添加以下内容并提交表单时记录日期和格式化日期:
{ Logger.log(date.toString());
Logger.log(formattedDate.toString());
}
在我添加以下内容并提交表单时记录日期和格式化日期:
{ Logger.log(date);
Logger.log(formattedDate);
}
将日期代码更新为
var date=form.getResponses()[length-1].getItemResponses()[1].getResponse();
date = new Date(date);
var formattedDate = Utilities.formatDate(date,'America/Los_Angeles','yyyy.MM.dd');
提交的表格日期为 1989 年 7 月 22 日,但日志显示它注册为 1989 年 7 月 21 日为日期和格式化日期,我不知道为什么... 形式 -
最终代码 -
var form=FormApp.getActiveForm();
// returns the total number of form submissions
var length=form.getResponses().length;
var date=form.getResponses()[length-1].getItemResponses()[1].getResponse();
date = new Date(date);
var formattedDate = Utilities.formatDate(date,'UTC','yyyy.MM.dd');
var transaction=form.getResponses()[length-1].getItemResponses()[2].getResponse();
var id=form.getResponses()[length-1].getItemResponses()[7].getResponse();
var file=DriveApp.getFileById(id);
name = file.getName();
var name = formattedDate + ' - ' + transaction + ' - ' + name.split(' - ')[1]
file.setName(name);
}
【问题讨论】: