如何减去日期中的月份?

时间:2016-07-19 09:18:19

标签: javascript

我有这个日期功能:

var isAnnual;
var setupDate="05/09/2016"
var currDate = new Date();//today

我需要检查上面日期中的减法是否等于零。

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

2 个答案:

答案 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);