我有這個日期函數:如何減去日期中的月份?
var isAnnual;
var setupDate="05/09/2016"
var currDate = new Date();//today
我需要檢查,如果上面的月的日期相減等於零。
任何想法是什麼來實現它的最佳方式?
我有這個日期函數:如何減去日期中的月份?
var isAnnual;
var setupDate="05/09/2016"
var currDate = new Date();//today
我需要檢查,如果上面的月的日期相減等於零。
任何想法是什麼來實現它的最佳方式?
從最新獲取的月份和減去它
注:一個月從0即一月開始-0,十二月-11
var s= new Date("05/09/2016");
var currDate = new Date();
console.log(s.getMonth()-currDate.getMonth());
這將工作僅在這兩個日期是在同一年。這會認爲例如5/9/2016和5/9/1999之間沒有區別。 – JJJ
是的,你是對的,在這種情況下,你可以減去今年也再轉換一年個月, – abhirathore2006
我覺得這個問題是不是問很準確,因爲它並不真正欺騙你想要的東西,例如至少有以下選項:
1)你想當月與給定日期的月份,這是順便也並不準確格式化比較。 僞代碼爲:
givenDate := "05/09/2016";
currentDate := determineCurrentDate();
givenMonth := extractMonthFromDateString(givenDate);
currentMonth := extractMonthFromDate(currentDate);
return givenMonth = currentMonth;
2)你想確定的currentdate是給定的日期 僞代碼爲月內:
givenDate := "05/09/2016";
currentDate := determineCurrentDate();
givenMonth := extractMonthFromDateString(givenDate);
currentMonth := extractMonthFromDate(currentDate);
givenYear := extractYearFromDateString(givenDate);
currentYear := extractYearFromDate(currentDate);
return givenMonth = currentMonth AND givenYear = currentYear;
對於第一種方法
一個JS基礎的解決方案是第二個選項,真正容易構建出這一個:
var setupDate = "05/09/2016"; // Format: dd/mm/yyyy
var currDate = new Date();
var monthsEqual = currDate.getMonth() == setupDate.replace(
/(\d\d)\/(\d\d)\/(\d{4})/, // regex for dd/mm/yyyy
function(date, day, month, year){ // regard the order of the params
return new Date(year, parseInt(month)-1, parseInt(day)).getMonth();
});
console.log(monthsEqual);
你搜索? ['[JavaScript的]日期月份difference'(https://stackoverflow.com/search?q=%5Bjavascript%5D+date+month+difference) –