我想两个将两个日期与时刻进行比较。我知道我可以参加
moment(firstDate).isSameOrBefore(secondDate)
但是问题是日期的格式未知。有两种可能的格式:
我确实知道语言环境,并且知道通过
完成的转换formattedDate: function() {
if (!this.date) {
return ''
}
moment.locale(this.locale);
return moment(this.date).format('L');
}
因此,在比较时,两个日期都可以是原始iso字符串或格式化的日期。
如何比较两个格式未知的日期?
我试图将两个日期转换为相同的格式,但是我不确定这是否正确(并且可能不会出现错误)
const firstConvertedDate = moment(firstDate).format()
const secondConvertedDate = moment(secondDate).format()
return moment(firstConvertedDate).isSameOrBefore(secondConvertedDate)
答案 0 :(得分:1)
您无法根据提供的字符串猜测格式。例如,字符串"10/7/2019"
可能是模棱两可的,因为它同时允许dd/mm/yyyy
和mm/dd/yyyy
。如果您知道语言环境,则可以将其提供给.moment()
函数。
moment(dateString, "L", locale);
var dateString = "10/7/2019",
display = "YYYY-MM-DD",
en_us = moment(dateString, "L", "en-us"),
en_gb = moment(dateString, "L", "en-gb");
console.log(
en_gb.format(display),
"<",
en_us.format(display),
"//=>",
en_gb.isBefore(en_us)
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment-with-locales.min.js"></script>