如何比较只有日期在瞬间。 js

我是新来的 Js。我有一个日期对象,它有一些时间与它相关联。我只是想检查这个日期是否大于或等于今天的日期 不包括比较时的时间

 var dateToCompare = 2015-04-06T18:30:00.000Z

我只想检查 dateToCompare 是否等于或大于今天的日期。 我已经检查了 isSame of moment. js,但似乎只需要字符串和日期部分。但是我不想将我的日期转换为字符串或进一步操作它。因为我担心 javascript 在将日期转换为字符串时会出现意想不到的情况(比如添加偏移量或 dst 等) ,或者我可能错了。

来自文档的样本是相同的()

moment('2010-10-20').isSame('2010-10-20');

另外,我也在寻找像 isSame ()和 isAfter ()这样的组合语句。

我需要比较只使用 Moment.js。请不要建议普通的 javascript 日期比较。

212085 次浏览

同时,你可以使用 isSameOrAfter方法:

moment('2010-10-20').isSameOrAfter('2010-10-20', 'day');

医生: https://momentjs.com/docs/#/query/is-same-or-after/

在我的情况下,我做了下面的代码比较2日期可能会帮助你..。

var date1 = "2010-10-20";
var date2 = "2010-10-20";
var time1 = moment(date1).format('YYYY-MM-DD');
var time2 = moment(date2).format('YYYY-MM-DD');
if(time2 > time1){
console.log('date2 is Greter than date1');
}else if(time2 > time1){
console.log('date2 is Less than date1');
}else{
console.log('Both date are same');
}
<script src="https://momentjs.com/downloads/moment.js"></script>

您可以使用 startOf('day')方法仅比较日期

例如:

var dateToCompare = moment("06/04/2015 18:30:00");
var today = moment(new Date());


dateToCompare.startOf('day').isSame(today.startOf('day'));

isAfter()方法检查一个日期接着一个日期。

moment('2020-01-20').isAfter('2020-01-21'); // false
moment('2020-01-20').isAfter('2020-01-19'); // true

isBefore()方法检查一个日期在另一个日期之前。

moment('2020-01-20').isBefore('2020-01-21'); // true
moment('2020-01-20').isBefore('2020-01-19'); // false

使用 isSame()方法检查一个日期与另一个日期相同。

moment('2020-01-20').isSame('2020-01-21'); // false
moment('2020-01-20').isSame('2020-01-20'); // true

Moment (‘ date’) . toDate () . getTime () > moment ()

moment('2022-01-07').isAfter(moment().format('YYYY-MM-DD'), 'day');

正在查 2022-01-07这是现在的日期

如果当前日期超过2022年1月6日,则返回 false!