我需要比较两个日期以检查所选日期是否小于今天。
//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。我认为这会很好。有什么需要注意的吗?
答案 0 :(得分:0)
==
或===
不能用于比较object
类型的变量。如果您看到selectedDate
和parsedDate
的类型,则它的类型为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>