繁体   English   中英

如何比较不同格式的两个日期

[英]How to compare two dates in different formats

我有一个格式为 19/02/ 19/02/2026, 07/02/2012 /2012 的两个日期和第三个日期

2021-05-19T12:51:11.630Z

它是YYYY-MM-DDTHH:mm:ss.SSSSZ 我需要检查第三个日期是否在这些日期之间。 但问题是我找不到使用不同格式的方法。 我尝试使用moment() isBetween, isBefore(), isAfter()函数,但由于格式不同,它无法正常工作

我试图将它们全部转换为毫秒

moment('19/02/2026').valueOf() 

但有时我会收到NaaN值,而不是毫秒。 我也尝试使用

Date().parse()

但它大部分时间都会给出Invalid Date 我可以做这样的事情,但我认为这是错误的方式。

let currentDate = moment( moment('2021-05-19T12:51:11.630Z').format('DD/MM/YYYY'))

有什么简单的方法可以用日期或时刻来做吗?

要解析既不是 RFC2822 也不是 ISO8601 格式的字符串,您需要指定要使用的格式:

const d = moment('19/02/2026', 'DD/MM/YYYY');

您可以使用isBetween测试一个moment实例是否位于其他两个moment实例之间,而不是使用valueOf

const startDate = moment('07/02/2012', 'DD/MM/YYYY');
const endDate = moment('19/02/2026', 'DD/MM/YYYY');
const dateToTest = moment('2021-05-19T12:51:11.630Z');
if (dateToTest.isBetween(startDate, endDate)) {
    alert("Between");
} else {
    alert("Not between");
}

字符串 + 格式 | 时刻.js | 文档
介于 | 时刻.js | 文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM