moment.js比较无法正常工作

时间:2018-06-22 13:43:24

标签: javascript datetime momentjs datetime-format

我需要比较两个日期以检查所选日期是否小于今天。

//taking current time

    var orignalDateFromAPI = moment();
    var selectedDate = moment(orignalDateFromAPI,"YYYY-MM-DD");

    console.log(selectedDate.format("DD-MM-YYYY"));

    var nativeDate = new Date(selectedDate);
    var parsedDate= moment(nativeDate,"YYYY-MM-DD");

    console.log(parsedDate.format("DD-MM-YYYY"));

    console.log(selectedDate.isSame(parsedDate)); //true
    console.log(selectedDate == parsedDate); //false

为什么第一个语句打印true而第二个语句打印false? 有没有更好的方法来检查日期是否小于或等于另一个日期?

编辑:我去了一个被标记为重复的问题,但是找不到与moment.js比较有关的任何答案。
我浏览了moment.js文档,发现了is same or before。我认为这会很好。有什么需要注意的吗?

1 个答案:

答案 0 :(得分:0)

=====不能用于比较object类型的变量。如果您看到selectedDateparsedDate的类型,则它的类型为object(瞬间)。因此,您不能使用==。相反,您必须使用MomentJS的isSame函数。

var orignalDateFromAPI = moment();
var selectedDate = moment(orignalDateFromAPI,"YYYY-MM-DD");

console.log(selectedDate.format("DD-MM-YYYY"));

var nativeDate = new Date(selectedDate);
var parsedDate= moment(nativeDate,"YYYY-MM-DD");

console.log(parsedDate.format("DD-MM-YYYY"));

console.log('typeof selectedDate ' + typeof selectedDate);
console.log(selectedDate.isSame(parsedDate)); //true
console.log(selectedDate == parsedDate); //false
<script src="https://momentjs.com/downloads/moment.js"></script>