添加30天到目前为止(mm / dd / yyyy)然后返回字符串(mm / dd / yyyy)

时间:2011-05-09 02:42:31

标签: javascript jquery date datepicker

我有下面的函数,它从datepicker中获取一个字符串并将其转换为日期对象,这样我就可以添加30天。从那里我试图将新日期作为一个字符串返回30天添加到它,格式为(mm / dd / yy)。

当第一个警报触发时,它会在所选日期正确添加30天,并在选择日期显示为“05/03/2011”:

  

Thu Jun 02 2011 00:00:00 GMT + 0100(GMT Daylight Time)

第二个警告显示

  

5/2/2011

似乎我无法正确格式化日期并采取“05/03/2011”并返回“06/02/2011”。我可以做一个月+ 1,但可以帮忙,并告诉我我做错了什么。

  $('#sign_date').datepicker({
      onSelect: function(dateText, inst) { 

          var d = new Date(dateText);
          d.setDate(d.getDate() + 30);

          alert(d);

          var date = d.getDate();
          var month = d.getMonth();
          var year = d.getFullYear();

          alert(month+'/'+date +'/'+year)

      }
  });

此外,我认为我这样做的方式会显示日期和月份,例如Jan = 1和1st = 1,我希望它是Jan = 01和1st = 01

由于

3 个答案:

答案 0 :(得分:3)

对于前导零:

// add leading zero if the length equals 1
if (month < 10) month = "0" + month;
if (day < 10)   day   = "0" + day;

在使用此代码之前,请确保在您的月份中添加1,因为getMonth()在1月份返回0,依此类推:

 var month = d.getMonth() + 1;

答案 1 :(得分:2)

惊喜,惊讶...... getMonth()方法返回0..11范围内的月份。

答案 2 :(得分:0)

凯利的回答对我有用

刚刚改变了这个

if(month<9) month = "0"+(month+1);
if(date<10) day = "0"+date;