JavaScript Date()格式和计算

JavaScript Date() formatting and calculations

本文关键字:计算 格式 Date JavaScript      更新时间:2023-09-26

我想从input获取日期,其格式是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);
        }
    });

。如果我选择04-05-2014,控制台返回我:

开始04-05-2014

我看到两个问题。

  1. 您在结果中更改了月份和日期。
  2. 您应该在datEndDate.getMonth() + 1周围添加括号。否则,1将作为字符串添加,而不是数字(在您的示例中产生41)。

所以固定的可能看起来像:

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

我找到解决方案了…

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

我是如此盲目…不好意思

使用parseInt方法将字符串转换为整数,然后对其加1

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