如何格式化日期。我希望日期格式为dd / mm / yyyy 29/03/2016。当我在改变夜晚时,应该在添加夜晚后显示结帐日期但是显示无效日期。
Html代码
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<label id="icon" for="name"><i class="icon-shield"></i>Check In</label><input type="text" id="checkin" class="HotelSearchFrom-Checkin" name="checkin" required/>
<select id="ddlnight" class="HotelSearchFrom-ddlNight">
<option value="0">Night</option>
<option value="1">1 Night</option>
<option value="2">2 Nights</option>
</select>
<label id="icon" for="name"><i class="icon-user"></i>Check Out</label>
<input type="text" id="checkout" class="HotelSearchFrom-Date" name="checkout" required/>
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<script>
$(function() {
$( "#checkin,#checkout" ).datepicker({ dateFormat: 'dd/mm/yy' });
(function($, window, document, undefined){
$("#ddlnight").on("change", function(){
var date = new Date($("#checkin").val());
days = parseInt($("#ddlnight").val(), 10);
if(!isNaN(date.getTime())){
alert("if is working");
date.setDate(date.getDate() + days);
$("#checkout").val(date.toInputFormat());
}
else {
alert("Invalid Date");
}
});
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 ( (dd[1]?dd:"0"+dd[0]) + "/" + mm[1]?mm:"0"+mm[0]) + "/" +yyyy; // padding
};
})(jQuery, this, document);
});
</script>
答案 0 :(得分:0)
问题在于您的开始和结束括号。使用此语法,它必须正常工作。 Working Fiddle 您的核心逻辑。
(dd[1] ? dd : "0" + dd[0]) + "/" + (mm[1] ? mm : "0" + mm[0]) + "/" + yyyy;
您之前拥有此部分代码的内容
((dd[1]?dd:"0"+dd[0]) + "/" + mm[1]?mm:"0"+mm[0])
(你可以注意到大括号的错误)只给出了一个月的输出。老实说,我不确定为什么会这样。但是在括号内包含三元代码必须解决您的问题。