簡體   English   中英

Moment.js 對未來 1 天的日期顯示警告,在 >1 天顯示錯誤

[英]Moment.js show warning for future date of 1 day and error for days >1

我正在嘗試顯示錯誤和警告:

  • 1天的未來日期應該是警告
  • > 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 passedcurrent date

如果傳遞給 function 的日期是tomorrow ,那么它將顯示警告 - 如果日期比今天提前2天,那么它將顯示錯誤消息。

此外,正如您所見,我使用的是三元運算符,它是ifelse的縮寫形式——這樣我們可以減少我們編寫的代碼行並獲得相同的結果。

現場演示:(我還為您添加了注釋,以詳細說明每一行代碼)

 //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")
}

http://jsfiddle.net/yf95k8eg/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM