【发布时间】:2014-03-15 18:46:41
【问题描述】:
我有这个功能:
function replaceKeys(documentClass, headersArr, personDataArr){
for(var i = 0; i<headersArr.length; i++){
var key = ":" + headersArr[i] + ":";
var newString = personDataArr[i];
Logger.log("newString ="+newString);
Logger.log("(newString instanceof Date) ="+(newString instanceof Date));
Logger.log("typeof newString ="+ ( typeof newString));
if(newString instanceof Date) {
newString = newString.getDate() + '/' + (newString.getMonth() + 1) + '/' + newString.getFullYear();
Logger.log("newString after if = "+newString);
}
replaceString(documentClass, key, newString);
Logger.log(" ");
}
}
这不起作用,因为日期存储为字符串,如此日志中所示:
数据存储在谷歌电子表格中。然后,字符串化并存储在 ScriptProperties 中(仅接受字符串),然后恢复为字符串数组。
我尝试过这样的操作:if(new Date (newString) instanceof Date),但是当字符串不能转换为日期格式时出现错误。
我如何设置条件来尝试某些事情,当我通过条件时,我可以执行以下操作:
或者其他解决方法?
【问题讨论】:
-
数据在哪里生成,如果是本地的,那么您不能存储日期对象而不是将其转换为 ISO8601 字符串吗?否则你需要从字符串中创建一个 Date 对象,这并不难。
-
数据存储在谷歌电子表格中。然后,字符串化并存储在 scriptproperties 中(仅接受字符串),之后恢复为字符串数组。
-
好的,如果您需要的话,您只需要将字符串转换为 Date 对象。将字符串拆分为多个部分并将它们传递给 Date 构造函数,并使用 Date.UTC 作为您的字符串在 UTC
Z -
但是很多数组对象不是日期(例如:姓名等)
-
但是你知道哪些字段是什么,不是吗?
标签: javascript date datetime google-apps-script