Javascript 时间戳错误处理
它将日期转换为时间戳:Javascript 时间戳错误处理,javascript,node.js,Javascript,Node.js,它将日期转换为时间戳: let Record1 = { SubmitDate: "2012-03-24 17:45:12" } try { timestamp = parseInt((new Date(Record1.SubmitDate).getTime() / 1000).toFixed(0)); } catch(err) { timestamp = null; } console.log(timestamp) 返回:1332611112 如果SubmitDate为null或S
let Record1 = { SubmitDate: "2012-03-24 17:45:12" }
try {
timestamp = parseInt((new Date(Record1.SubmitDate).getTime() / 1000).toFixed(0));
} catch(err) {
timestamp = null;
}
console.log(timestamp)
返回:1332611112
如果SubmitDate
为null或SubmitDate
属性不存在,则应返回null。出于某种原因,它不会执行到catch块中
范例
let Record2 = { SubmitDate: null }
let Record3 = { }
我希望它们都返回null。时间戳应有效,否则返回null
如何解决此问题?当使用未定义或空参数调用
新日期时,不会引发错误:
console.log(新日期(未定义).getTime());
log(新日期(null).getTime())代码>当使用未定义或空参数调用新日期时,不会引发错误:
console.log(新日期(未定义).getTime());
log(新日期(null).getTime())代码>请记住
parseInt((新日期(null).getTime()/1000.toFixed(0))
将返回0
但是
parseInt((新日期(未定义).getTime()/1000.toFixed(0))
将返回NaN
不管怎样,|
将查找布尔值,并强制转换为0,“NaN”将为false,因此
var timestamp = parseInt((new Date(record.SubmitDate).getTime()/1000).toFixed(0)) || null;
即使在时间戳不正确的情况下,也会为您提供此技巧,如示例2018-22-22 44:88
请记住
parseInt((新日期(null).getTime()/1000.toFixed(0))
将返回0
但是
parseInt((新日期(未定义).getTime()/1000.toFixed(0))
将返回NaN
不管怎样,|
将查找布尔值,并强制转换为0,“NaN”将为false,因此
var timestamp = parseInt((new Date(record.SubmitDate).getTime()/1000).toFixed(0)) || null;
即使在时间戳不正确的情况下,也会为您提供此技巧,例如2018-22-22 44:88
这似乎很有效。为什么console.log(getTimestamp({SubmitDate:“abc”}))
返回到NaN而不是null?是的,请参见编辑-无论它是NaN
还是0
,使用它调用parseInt
将导致0(并且没有错误),这是我在调用console.log(getTimestamp({SubmitDate:'abc})时的意思代码>它应该返回null而不是NaN。您可以修复getTimestamp函数吗?哦,我明白了-您还需要处理无效的日期字符串,而不仅仅是null
或未定义的日期字符串。构造date对象,并检查结果时间戳是否为0或NaN
:这似乎很有效。为什么console.log(getTimestamp({SubmitDate:“abc”}))
返回到NaN而不是null?是的,请参见编辑-无论它是NaN
还是0
,使用它调用parseInt
将导致0(并且没有错误),这是我在调用console.log(getTimestamp({SubmitDate:'abc})时的意思代码>它应该返回null而不是NaN。您可以修复getTimestamp函数吗?哦,我明白了-您还需要处理无效的日期字符串,而不仅仅是null
或未定义的日期字符串。构造date对象,并检查生成的时间戳是0还是NaN
: