所以我有一个非常简单的表单,它有3个输入,一个标题,开始和结束日期。我试图使用一个简单的脚本来生成日历事件。这可以在下面看到。
function onFormSubmit(e) {
var title = e.values[1];
var start_time = new Date(e.values[2]);
var end_time = new Date(e.values[3]);
CalendarApp.createEvent(title, start_time, end_time);
}
我遇到的问题是,由于日期字符串是英国格式(例如05/12/2016 12:00:00),因此将事件记录为5月12日,而不是12月5日。
我是所有这一切的新手,所以我正在寻找一个我理解的优雅而简单的解决方案,而不仅仅是复制我没有的代码。
感谢。
答案 0 :(得分:0)
function convertUKDateToUSDate(date) {
const arr = date.split('/');
const temp = arr[0];
arr[0] = arr[1];
arr[1] = temp;
return arr.join('/');
}
会将带有前缀“DD / MM /”的日期字符串转换为“MM / DD / YYYY”格式。 Split将字符串转换为类似[“DD”,“MM”,“YYYY HH:MM:SS”]的数组,然后临时变量用于在数组条目连接之前交换“MM”和“DD”与用于分割它们的相同字符一起使用。你最终会得到一个onFormSubmit(e)
这样的结果:
function onFormSubmit(e) {
var title = e.values[1];
var start_time = new Date(convertUKDateToUSDate(e.values[2]));
var end_time = new Date(convertUKDateToUSDate(e.values[3]));
CalendarApp.createEvent(title, start_time, end_time);
}
显然我假设e.values[2]
和e.values[3]
是字符串。如果它们已经是Date对象(或者如果您只想要更短的解决方案),那么请考虑使用Moment.js
(主要的Date对象库)format
函数来转换格式。通常我会推荐使用Moment,但是你说你想要的东西你可以理解而不是复制。