簡體   English   中英

如何使用JavaScript計算本月和下個月的時間?

[英]How to calculate time for this and next month in javascript?

我正在開發一個程序,我得到這樣的日期:

2016-08-31T00:00:00

所以我的目標是進行3個比較:

1.-如果拒絕已經發生,則需要顯示“到期”

2.-如果下個月到期,則需要顯示下個月到期

3.-如果要在本月到期,則需要顯示“本月到期”

到目前為止,通過執行以下操作,我可以顯示消息“ Due”:

var someTime = "2016-08-31T00:00:00";

if(new Date(someTime).getTime() < new Date()){
   console.log("Due");
}

那么,如何獲得"Due next Month" "Due this month" "Due next Month""Due this month" "Due next Month" "Due this month"計算結果呢? 在此先多謝!

為什么不這樣:

function appointment(srcDate) {
    console.log('');
    console.log(srcDate);

  var today = new Date();
  var todayNextMonth = today.getMonth() + 1;
  todayNextMonth = todayNextMonth > 11 ? 0 : todayNextMonth;

  if (srcDate < today) {
    console.log("Due");
  } else if (srcDate.getMonth() === today.getMonth()) {
    console.log("Due this month");
  } else if (srcDate.getMonth() === todayNextMonth) {
    console.log("Due next month");
  }
}

appointment(new Date("2016-08-31T00:00:00"));
appointment(new Date("2018-05-29T00:00:00"));
appointment(new Date("2018-06-15T00:00:00"));

jsfiddle

使用功能,更容易測試。

請記住, getMonth()是零索引的,因此januari等於0,而不是1,依此類推。

不確定為什么使用getTime()與Date對象進行比較,可以省略getTime() 但是請記住,如果約會日期是將來的5分鍾,它將顯示“本月到期”。 如果需要,您必須添加額外的邏輯以顯示“今天到期”。

您可以通過執行以下操作獲取當前月份:

const today = new Date();
const month = today.getMonth();

從技術上講,您可以加1來獲取下個月: const nextMonth = month + 1;

但是請注意,如果日期是1月31日(如果上述日期將給您3月作為下個月),則這樣做可能會出現問題。

有關更多信息,請參見此問題和解答: Javascript日期:下個月

另外,如果您要處理大量日期,則可以使用諸如moment.js之類的庫。

暫無
暫無

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

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