如何检查到期日期是否少于一个月?

问题描述 投票:1回答:2

我有一个代码,用于检查给定到期日期的剩余天数:

const expiration = "2019-10-25T01:41:02.523Z";
const daysLeft = Math.floor((Date.parse(expiration) - Date.now()) / (24 * 60 * 60 * 1000));

console.log(daysLeft);

现在,我要检查当前日期是否比给定的到期日期还不到一个月。

我尝试使用矩,但不确定是否做对了

const now = moment().add(1, 'M');
const expires = moment(expiration);

if (now.isBefore(expires)) {
  // expired
}

我该如何实现?预先感谢。

javascript momentjs
2个回答
2
投票

我认为您只是想颠倒您的逻辑,并使用isAfter()。如果我们登录2019-10-25T01:41:02.523Z,它现在显示“不到一个月”,并且如果将其递增到“ 2019-11-25”,它将不再显示console.log消息:

const expiration = "2019-10-25T01:41:02.523Z";

const now = moment().add(1, 'M');
const expires = moment(expiration);

if (now.isAfter(expires)) {
  console.log(expiration, 'under a month');
} else {
  console.log(expiration, 'not under a month');
}


const expiration2 = "2019-11-25T01:41:02.523Z";

const expires2 = moment(expiration2);

if (now.isAfter(expires2)) {
  console.log(expiration2, 'under a month');
} else {
  console.log(expiration2, 'not under a month');
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>

0
投票

您也可以使用diff功能进行检查:

var currentDate = moment();
var expiration = "2019-10-25T01:41:02.523Z";
var futureDate = moment(expiration).add(1, 'M');

if (currentDate.diff(futureDate) >= 0) {
  console.log("Expired");
}
© www.soinside.com 2019 - 2024. All rights reserved.