[英]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"));
使用功能,更容易測試。
請記住, 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.