[英]Moment.js show warning for future date of 1 day and error for days >1
我正在嘗試顯示錯誤和警告:
// date can be different (i.e 10-08-2020)
const date = data[attr]
if (date.isAfter(moment().endOf('day'))) {
return "This should be an error;
}
if (moment().add('days', 1)) {
return 'This should be a warning';
}
我想我使用了錯誤的方法,我無法實現我想要的。
您可以簡單地使用date_diff moment function 來確定過去的date passed
和current date
。
如果傳遞給 function 的日期是tomorrow
,那么它將顯示警告 - 如果日期比今天提前2
天,那么它將顯示錯誤消息。
此外,正如您所見,我使用的是三元運算符,它是if
和else
的縮寫形式——這樣我們可以減少我們編寫的代碼行並獲得相同的結果。
現場演示:(我還為您添加了注釋,以詳細說明每一行代碼)
//This is just to for purpose to show the all dates are working let dataAttrToday = moment().endOf('day') //Todays date let dataAttr1Days = moment('11-08-2020', 'DD-MM-YYYY').endOf('day') //1 day ahead let dataAttr2Days = moment('12-08-2020', 'DD-MM-YYYY').endOf('day') //2 days ahead let dataAttr3Days = moment('13-08-2020', 'DD-MM-YYYY').endOf('day') //3 days ahead //get dats difference and return message function checkDays(date) { let getDiff = moment().diff(date, 'days') //get difference return (getDiff == 0)? "This is today": (getDiff == -1)? "This is an warning": (getDiff == -2)? "This is an error": 'This is an error' } console.log("10-08-2020 " + checkDays(dataAttrToday)) //This is today console.log("11-08-2020 " + checkDays(dataAttr1Days)) //this is a warning console.log("12-08-2020 " + checkDays(dataAttr2Days)) //this is an error console.log("13-08-2020 " + checkDays(dataAttr2Days)) //this is an error
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.23.0/moment.min.js"></script>
var date = "11-08-2020"; //input date read from somewhere
var today = moment().format("YYYYMMDD");
var tomorrow = moment().add(1, 'days').format("YYYYMMDD");
var inputDate = moment(date, "DD-MM-YYYY").format("YYYYMMDD");
if ( inputDate > tomorrow ) {
alert ("error");
} else if ( inputDate > today ) {
alert ("warning")
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.