gpt4 book ai didi

javascript - 使用 moment 检查日期的更好方法是在今天日期之前/之后 1 到 2 天

转载 作者:行者123 更新时间:2023-12-01 00:05:18 25 4
gpt4 key购买 nike

如果日期距日期还有 1 或 2 天,则在日期后的接下来 1 到 2 天使用红色和绿色,否则使用黑色。有没有更好的方法来做到这一点

const date = moment(apptDate).isValid() ? moment(apptDate) : '';
const dateMinus1days = date !== '' ? date.subtract(1, 'day').format('MM/DD/YYYY') : null;
const dateMinus2days = date !== '' ? date.subtract(2, 'day').format('MM/DD/YYYY') : null;
const dateAdd1days = date !== '' ? date.add(1, 'day').format('MM/DD/YYYY') : null;
const dateAdd2days = date !== '' ? date.add(2, 'day').format('MM/DD/YYYY') : null;
let color;
if (dateMinus1days && moment().format('MM/DD/YYYY') === dateMinus1days || dateMinus2days && moment().format('MM/DD/YYYY') === dateMinus2days) {
color = 'green'
} else if (dateAdd1days && moment().format('MM/DD/YYYY') === dateAdd1days || dateAdd2days && moment().format('MM/DD/YYYY') === dateAdd2days) {
color = 'red'
} else {
color = 'black'
}

最佳答案

您可以使用isBetween那:

Check if a moment is between two other moments, optionally looking at unit scale (minutes, hours, days, etc). The match is exclusive. The first two arguments will be parsed as moments, if not already so.

您的代码可能如下所示:

const getColor = (apptDate) => {
let color = 'black';
const date = moment(apptDate);
const now = moment();
const inTwoDays = moment().add(2, 'day');
const twoDaysAgo = moment().subtract(2, 'day')
if (date.isValid() && date.isBetween(twoDaysAgo, now, 'day', '[]')) {
color = 'green';
} else if (date.isValid() && date.isBetween(now, inTwoDays, 'day', '[]')) {
color = 'red';
}
return color;
}

[
moment().format(),
moment().add(1, 'day').format(),
moment().add(2, 'day').format(),
moment().add(3, 'day').format(),
moment().subtract(1, 'day').format(),
moment().subtract(2, 'day').format(),
moment().subtract(3, 'day').format(),
'invalid'
].forEach((elem) => {
console.log(elem, getColor(elem));
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>

关于javascript - 使用 moment 检查日期的更好方法是在今天日期之前/之后 1 到 2 天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60425020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com