首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery向日期添加天数

jQuery向日期添加天数
EN

Stack Overflow用户
提问于 2011-10-26 05:56:11
回答 3查看 34.2K关注 0票数 1

我正在尝试将天数添加到日期选择器输入中,以获得开始日期和结束日期。我得到了一个不正确的结束日期,看不出原因。

示例:所选日期2011-10-25,第1天

结果: date_start 2011-9-25,date_end 2012-5-7

代码语言:javascript
复制
 function makeUpDates(){
      // concantenate values to date_start and date_end hidden inputs
      var dateString = document.getElementById('date').value,
      date = new Date(dateString);
      document.getElementById('date_start').value = date.getFullYear() + '-' + date.getMonth() + '-' + date.getDate();

      var numDays = document.getElementById('slider').value;
      date.setDate(date.getDate() + numDays);   
      var dateEnd = date.getFullYear() + '-' + date.getMonth() + '-' + date.getDate();
      document.getElementById('date_end').value = dateEnd;
 }
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-10-27 02:09:55

问题是在添加之前必须将numDays转换为整数。否则我会得到奇怪的结果。

代码语言:javascript
复制
function makeUpDates(){
      // concantenate values to date_start and date_end hidden inputs
      var dateString = document.getElementById('date').value,
      date = new Date(dateString);
      alert (date);
      document.getElementById('date_start').value = date.getFullYear() + '-' + (date.getMonth()+1) + '-' + date.getDate();

      var numDays = document.getElementById('slider').value;
      date.setDate(date.getDate() + parseInt(numDays)); 

      var dateEnd = date.getFullYear() + '-' + (date.getMonth()+1) + '-' + date.getDate();
      document.getElementById('date_end').value = dateEnd;
 }
票数 1
EN

Stack Overflow用户

发布于 2016-03-19 00:55:32

我更喜欢将参数传递给函数,而不是使用隐藏输入。我还希望日期以原始格式显示,因为我正在使用日期选择器,希望日期字符串采用特定的格式。我还决定让这个函数在日期分隔符和填充方面更加灵活一些。用法: AddDaysToDate("03/18/2016",5,"/"),加上5天返回“03/23/2016”。

代码语言:javascript
复制
function AddDaysToDate(sDate, iAddDays, sSeperator) {
    //Purpose: Add the specified number of dates to a given date.
    var date = new Date(sDate);
    date.setDate(date.getDate() + parseInt(iAddDays));
    var sEndDate = LPad(date.getMonth() + 1, 2) + sSeperator + LPad(date.getDate(), 2) + sSeperator + date.getFullYear();
    return sEndDate;
}
function LPad(sValue, iPadBy) {
    sValue = sValue.toString();
    return sValue.length < iPadBy ? LPad("0" + sValue, iPadBy) : sValue;
}
票数 3
EN

Stack Overflow用户

发布于 2011-10-26 05:58:20

代码语言:javascript
复制
  var today       =new Date('12/22/1978');
 var in_a_day   =new Date(today).setDate(today.getDate()+1); //+1 or +x

编辑日期格式应为:mm/dd/yyyy

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7896378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档