moment.js / date在iOS上显示为NaN

时间:2019-07-11 18:32:19

标签: javascript date momentjs

我在iOS中计算日期时得到NaN。对于台式机和Android,它可以完美运行,但是在iOS和Safari上,我得到NaN

这是我的代码:

last_visit_date来自数据库,例如:"2019-06-07T00:00:00.000Z"

let formattedLastVisitDate = moment(last_visit_date).format('MM-DD-YYYY') --- RESULT: "06-06-2019"

let testing = moment(formattedLastVisitDate).add('30', 'days').format('MM-DD-YYYY') -- RESULT "Invalid Date"

let add14Days = moment(testing).add('14', 'days').format('MM-DD-YYYY') -- RESULT "Invalid Date"

为什么这种逻辑仅在iOS上失败?

1 个答案:

答案 0 :(得分:3)

moment(formattedLastVisitDate)moment(testing)中,您都在解析MM-DD-YYYY格式的字符串。如果在开发人员控制台上查看,将会看到不赞成使用的警告。 Moment.js指南here中对此进行了介绍。

解析字符串时,要么解析supported string formats之一,要么提供formatting specification第二个参数,就像这样:

moment(formattedLastVisitDate, 'MM-DD-YYYY')

由于弃用消息中所述的原因,它在某些浏览器上而不是其他浏览器上失败,这是因为它退回到内置的Date.parse行为,该行为具有某些特定于实现的行为,因此在浏览器。