我有这个日期功能:
var isAnnual;
var setupDate="05/09/2016"
var currDate = new Date();//today
我需要检查上面日期中月的减法是否等于零。
知道实施它的最佳方法是什么?
答案 0 :(得分:0)
从日期获取月份并减去它
注意:月份从0开始,即Jan-0,Dec-11
var s= new Date("05/09/2016");
var currDate = new Date();
console.log(s.getMonth()-currDate.getMonth());
答案 1 :(得分:0)
我认为这个问题并不是非常准确,因为它并不能真正理解你想要的东西,例如:至少有这些选择:
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);