嘿,我有一个scrip,它为sheest获取数据并填充gdoc文件其中一行是日期
const friendlyDate = new Date(row[2]).toLocaleDateString();
但如果单元格中没有输入日期,则返回"0";Invbalid Date";我该如何在Gdoc文件中添加if satement来检查单元格中是否有有效日期,如果没有;未在日期";
我确实尝试了不同的if组合,但我在appscript 方面没有那么熟练
从Invbalid Date
,我认为row[2]
可能是""
。如果我的理解是正确的,尽管不幸的是,我不能知道你的整个剧本,但下面的修改如何?
模式1:
const friendlyDate = row[2] && new Date(row[2]).toLocaleDateString();
- 在这种模式中,当
row[2]
是""
时,friendlyDate
是""
模式2:
这是从这个线程。
const date = new Date(row[2]);
const friendlyDate = isNaN(date.getTime()) ? row[2] : date.toLocaleDateString();
- 在这种模式中,当
!isNaN(date.getTime())
是true
时,friendlyDate
是date.toLocaleDateString()
的值。并且,当!isNaN(date.getTime())
是false
时,friendlyDate
是""
注意:
- 当
row[2]
的值对new Date()
无效时,如果您想返回另一个值,请修改上面的脚本
你可以试试这个。
function test() {
try {
getDate( new Date() );
getDate( 1 );
getDate( "hello" );
}
catch(err) {
console.log("Error in test: "+err);
}
}
function getDate(value) {
try {
if( value.constructor.name === "Date" ) {
console.log(value.toLocaleDateString());
}
else {
console.log("not a date")
}
}
catch(err) {
console.log("Error in doStuff: "+err);
}
}
4:54:05 AM Notice Execution started
4:54:09 AM Info 11/1/2022
4:54:09 AM Info not a date
4:54:09 AM Info not a date
4:54:06 AM Notice Execution completed