检查const是否为有效日期



嘿,我有一个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时,friendlyDatedate.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

最新更新