JavaScript Date()格式和计算

时间:2014-05-22 12:50:38

标签: javascript jquery datepicker

我希望从input获取日期,当通过Bootstrap Date Picker设置时,该格式为dd-mm-yyyy,并根据此日期计算一周结束。不知怎的,我得到了一些奇怪的结果。

 $('#date-start').on('changeDate', function(){
        var objThs = $(this);
        if(objThs.parent().is('.reportDateWeeks')){
            var arrDateEl = objThs.val().split("-"),
                datStartDate = new Date(arrDateEl[2], arrDateEl[1] -1, arrDateEl[0]),
                datEndDate= new Date(datStartDate.setDate(datStartDate.getDate()+7)),
                datEndDateFormated = datEndDate.getDate() + '-' + datEndDate.getMonth() + 1 + '-' + datEndDate.getFullYear();

            console.log('start ' + objThs.val());
            console.log('end' + datEndDateFormated);

        }
    });

e.g。如果我选择04-05-2014,那么控制台会给我回复:

从04-05-2014开始

结束11-41-2014

3 个答案:

答案 0 :(得分:1)

我看到两个问题。

  1. 您在结果中按月和日期切换。
  2. 您应该在datEndDate.getMonth() + 1周围添加括号。否则,1将被添加为字符串,而不是数字(在您的示例中生成41)。
  3. 所以固定可能看起来像:

    var datEndDateFormated = (datEndDate.getMonth() + 1) + '-' 
        + datEndDate.getDate() + '-' 
        + datEndDate.getFullYear();
    

答案 1 :(得分:-1)

好的,我找到了解决方案......

 datEndDateFormated = datEndDate.getDate() + '-' + datEndDate.getMonth() + '-' + datEndDate.getFullYear();

我是如此盲目......关于那个

答案 2 :(得分:-1)

使用parseInt方法将字符串转换为整数,然后将+1转换为整数。

datEndDateFormatted = datEndDate.getDate() + '-' + parseInt(datEndDate.getMonth() + 1) + '-' + datEndDate.getFullYear();