我正在使用Google App Script中的日期字符串。我将字符串转换为日期对象,但在特定日期有困难。
以下代码为8月,9月,10月和11月创建4个日期,并使用新的Date()将它们转换为日期。
function myFunction() {
var date1 = "2016-07-18T13:44:00.000+0000";
var date2 = "2016-08-01T13:44:00.000+0000";
var date3 = "2016-09-01T13:44:00.000+0000";
var date4 = "2016-10-01T13:44:00.000+0000";
var fizedDate1 = dateFix(date1);
var fizedDate2 = dateFix(date2);
var fizedDate3 = dateFix(date3);
var fizedDate4 = dateFix(date4);
return 0;
}
function dateFix(date){
var fixedDate = new Date(date.slice(0,4),parseInt(date.slice(5,7)),date.slice(8,10),parseInt(date.slice(11,13)),date.slice(14,16),date.slice(17,19));
return fixedDate;
}
但是,正如下面的调试器所示,9月(08)和10月(09)的日期是无效日期。
我已经尝试更改新Date()的所有其他参数的数字,但只有月份,而且只有输入08和09才会创建无效日期。
如何解决这个问题?
答案 0 :(得分:0)
Google Apps脚本与parseInt(" 08")和parseInt(" 09")有一个奇怪的错误,您可以通过指定parseInt来处理小数来修复它,例如parseInt (" 08" 10):
function myFunction() {
var date1 = "2016-07-18T13:44:00.000+0000";
var date2 = "2016-08-01T13:44:00.000+0000";
var date3 = "2016-09-01T13:44:00.000+0000";
var date4 = "2016-10-01T13:44:00.000+0000";
var fizedDate1 = dateFix(date1);
var fizedDate2 = dateFix(date2);
var fizedDate3 = dateFix(date3);
var fizedDate4 = dateFix(date4);
return 0;
}
function dateFix(date){
var fixedDate = new Date(date.slice(0,4),parseInt(date.slice(5,7),10),date.slice(8,10),parseInt(date.slice(11,13),10),date.slice(14,16),date.slice(17,19));
return fixedDate;
}