moment.js 将日期与格式 dd-mm-yyyy 进行比较

时间:2021-06-14 13:35:34

标签: momentjs

我有两个输入字段,日期格式为 dd-mm-yyyy。

从日期:10-06-2021

至今:14-06-2021

我想将日期与 moment.js 进行比较,但结果是 fromdate 大于 todate。

var dateFrom = moment($(".fromdate").val(), "dd-mm-yyyy");
var dateTo = moment($(".todate").val(), "dd-mm-yyyy");

if(moment(dateFrom).isBefore(dateTo, 'day')){
    console.log("Go");
} else {
    console.log("Stop");
}

我的控制台打印停止。

我使用 moment-with-locales.js

1 个答案:

答案 0 :(得分:0)

如果我们添加一个 console.log 来检查 MomentJS 对象,我们可以看到解析出错了:

console.log(dateFrom, dateTo);
// "2020-12-31T23:06:00.000Z" "2020-12-31T23:06:00.000Z"

var dateFrom = moment('10-06-2021', "dd-mm-yyyy");
var dateTo = moment('14-06-2021', "dd-mm-yyyy");

console.log(dateFrom, dateTo);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment-with-locales.min.js"></script>


您的第二个参数(日期格式)不正确。

MomentJs 需要以下格式:DD-MM-YYYY 而不是 dd-mm-yyyy where

  • DD 月中的某天
  • MM 月份数
  • YYYY 4 位数字年份

有关更多格式,请查看documentation

var dateFrom = moment('10-06-2021', "DD-MM-YYYY");
var dateTo = moment('14-06-2021', "DD-MM-YYYY");

if(moment(dateFrom).isBefore(dateTo, 'day')){
    console.log("Go");
} else {
    console.log("Stop");
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment-with-locales.min.js"></script>

<块引用>