我下面有一个函数,该函数从datepicker中获取一个字符串并将其转换为date对象,因此我可以为其添加30天。在这里,我尝试以(mm / dd / yy)的格式返回新日期,并将其添加为30天。

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


  2011年6月2日星期四00:00:00 GMT + 0100(格林尼治标准时间夏令时间)


第二个警报显示


  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

谢谢

最佳答案

对于前导零:

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


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

 var month = d.getMonth() + 1;

关于javascript - 加上30天至今(mm/dd/yyyy),然后传回字串(mm/dd/yyyy),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5931985/

10-10 07:57