如何从datetimepicker获取日期时间添加小时,并将其设置为todate框?

时间:2015-07-17 08:27:50

标签: jquery datetimepicker

我有两个日期字段fromdatetodate我必须获得fromdate并为日期添加小时数,并将结果日期设置为todate。我在这里尝试的是将“无效日期”作为值。以下是我的代码。请看看。

function setEndDate(k) 
    { 
        var date2 = new Date($('#startdate' + k).val());

        var hours = parseFloat($("#duration"+k).val());

        date2.setHours(date2.getHours() + hours); 

          var day = date2.getDate();
          var month = date2.getMonth()+1;
          var year = date2.getFullYear();
          var hour = date2.getHours();
          var minutes = date2.getMinutes();
          var seconds = date2.getSeconds();


          date2=(year + '-' + month + '-' + day+' '+hour+':'+minutes+':'+seconds);

          $('#enddate' + k).val(date2);  


    }

1 个答案:

答案 0 :(得分:0)

您遇到的第一个问题是您的开始日期格式不正确,无法转换为Date对象。你需要转换:

2015-07-17 15:25:00

2015-07-17T15:25:00

可以使用replace上的简单string来完成:

startdate = startdate.replace(' ','T');

然后您可以按如下方式创建日期对象:

var fromDate = new Date(startdate);

您遇到的第二个问题是日期功能(例如getHours())将在格式化时需要单个小时(例如3个)返回单个integer 03以便在创建新日期时使用它。我在代码中添加了一个新函数来实现这个目的:

function formatNum(num) {   
    return num < 10 ? '0' + num : '' + num;
} 

完整的JavaScript如下:

&#13;
&#13;
function setEndDate(k) {
  var startdate = $('#startdate').val();
  startdate = startdate.replace(' ', 'T'); // convert date string to suitable format
  var fromDate = new Date(startdate); // create the date object
  fromDate = new Date(fromDate.setHours(fromDate.getHours() + k)); // add hours to fromDate

  var day = formatNum(fromDate.getDate());
  var month = formatNum(fromDate.getMonth() + 1);
  var year = fromDate.getFullYear();
  var hour = formatNum(fromDate.getHours());
  var minute = formatNum(fromDate.getMinutes());
  var seconds = formatNum(fromDate.getSeconds());

  var toDate = year + '-' + month + '-' + day + ' ' + hour + '-' + minute + '-' + seconds;
  $('#enddate').val(toDate);
}

function formatNum(num) {
  return num < 10 ? '0' + num : '' + num;
}
&#13;
&#13;
&#13;

我在这里设置了一个快速演示:http://jsfiddle.net/1vtf246s/

希望它有所帮助。