Adding days to given date in jQuery
本问题已经有最佳答案,请猛点这里访问。
我有一个包含三个字段的表单,"start_date","days","end_date"。 我想通过在开始日期添加天数来获得结束日期。
我的jQuery代码是:
1 2 3 4 5 6 7 | $("#days").change(function(){ var start_date = new Date($("#start_date").attr('value')); var days = parseInt($("#days").attr('value'))-1; var end_date = new Date(start_date); end_date.setDate(start_date.getDate() + days); $("#end_date").val(end_date.getFullYear() + '-' + ("0" + (end_date.getMonth() + 1)).slice(-2) + '-' + ("0" + end_date.getDate()).slice(-2)); }); |
在"end_date"字段中,我得到"NaN-aN-aN"。
我究竟做错了什么?
NaN代表
您可以使用
一些代码可以帮助您入门:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | ;(function($, window, document, undefined){ $("#days").on("change", function(){ var date = new Date($("#start_date").val()), days = parseInt($("#days").val(), 10); if(!isNaN(date.getTime())){ date.setDate(date.getDate() + days); $("#end_date").val(date.toInputFormat()); } else { alert("Invalid Date"); } }); //From: http://stackoverflow.com/questions/3066586/get-string-in-yyyymmdd-format-from-js-date-object Date.prototype.toInputFormat = function() { var yyyy = this.getFullYear().toString(); var mm = (this.getMonth()+1).toString(); // getMonth() is zero-based var dd = this.getDate().toString(); return yyyy +"-" + (mm[1]?mm:"0"+mm[0]) +"-" + (dd[1]?dd:"0"+dd[0]); // padding }; })(jQuery, this, document); |
http://jsfiddle.net/MCzJ6/1
希望这可以帮助。
w ^