Javascript 如何在日期中减去月份?

Javascript 如何在日期中减去月份?,javascript,Javascript,我有这个功能: var isAnnual; var setupDate="05/09/2016" var currDate = new Date();//today 我需要检查上述日期中月数的减法是否等于零 知道实现它的最佳方法是什么吗?从日期中提取月份并减去它 注:月份从0开始,即1月-0日,12月-11日 我认为这个问题问得不太准确,因为它并没有真正描述你想要什么,例如,至少有以下选项: 1.)您想将当前月份与给定日期的月份进行比较,顺便说一句,这也是格式不准确的。 伪代码: givenD

我有这个功能:

var isAnnual;
var setupDate="05/09/2016"
var currDate = new Date();//today
我需要检查上述日期中月数的减法是否等于零


知道实现它的最佳方法是什么吗?

从日期中提取月份并减去它

注:月份从0开始,即1月-0日,12月-11日


我认为这个问题问得不太准确,因为它并没有真正描述你想要什么,例如,至少有以下选项:

1.)您想将当前月份与给定日期的月份进行比较,顺便说一句,这也是格式不准确的。 伪代码:

givenDate := "05/09/2016";
currentDate := determineCurrentDate();

givenMonth := extractMonthFromDateString(givenDate);
currentMonth := extractMonthFromDate(currentDate);

return givenMonth = currentMonth;
givenDate := "05/09/2016";
currentDate := determineCurrentDate();

givenMonth := extractMonthFromDateString(givenDate);
currentMonth := extractMonthFromDate(currentDate);
givenYear := extractYearFromDateString(givenDate);
currentYear := extractYearFromDate(currentDate);

return givenMonth = currentMonth AND givenYear = currentYear;
2.)您想确定当前日期是否在给定日期的月份内 伪代码:

givenDate := "05/09/2016";
currentDate := determineCurrentDate();

givenMonth := extractMonthFromDateString(givenDate);
currentMonth := extractMonthFromDate(currentDate);

return givenMonth = currentMonth;
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(月数相等)

你找过了吗?只有当两个日期在同一年内时,这才有效。这会认为,例如,2016年5月9日和1999年5月9日之间没有差异。是的,你是对的,在这种情况下,你也可以减去年份,然后将年份转换为月份,