gpt4 book ai didi

javascript - 检查日期是否已经用时刻解析

转载 作者:行者123 更新时间:2023-11-29 23:16:50 25 4
gpt4 key购买 nike

我正在传递一个日期字符串,需要使用 moment 对其进行适当的解析。问题是在某些情况下它会被解析两次,这会导致它变为 undefined

这是当前代码的样子:

moment.tz(dt, 'MMMM D, YYYY', timezone).toDate()

当我第二次解析它时,我得到:

moment.invalid(/* 2018-09-21T05:00:00.000Z */)

这导致当我执行 toDate() 时变为 undefined

虽然我第一次得到的正是我所期望的:

'2019-02-01T05:00:00.000Z'

在执行任何这些操作之前,我想检查它是否已经采用我期望的格式。我该怎么做?

最佳答案

您可能会使用 isValid()在调用 toDate() 之前检查解析是否有效的方法。演示:

var timezone = "America/Los_Angeles";
var dt = 'Sept 21, 2018';
var m = moment.tz(dt, 'MMMM D, YYYY', timezone);
var converted = m.toDate().toString();
console.log(converted);

var x = moment.tz(converted, 'MMMM D, YYYY', timezone);
console.log(x.isValid());
//if parsing worked, use the new value
if (x.isValid()) {
console.log(x.toDate());
}
// if not, assume it's already the correct format and just use that
else
{
console.log(converted);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.21/moment-timezone-with-data.min.js"></script>

关于javascript - 检查日期是否已经用时刻解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52445693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com