2016-04-01 9 views
0

日付をフォーマットする方法。私はdd/mm/yyyy 29/03/2016の形式で日付が欲しいです。夜が変わると、夜を追加した後にチェックアウトの日付が表示されますが、無効な日付が表示されます。

HTMLコードjQuery - 日付をフォーマットすると、日付は無効な日付になります

<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> 



jQueryのコード

<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

問題は、あなたの開閉ブラケットとありました。この構文を使用し、正常に動作する必要があります。 Working Fiddleあなたのコアロジックです。以前のコード ((dd[1]?dd:"0"+dd[0]) + "/" + mm[1]?mm:"0"+mm[0])のこの部分は、(あなたが括弧で間違いに気付くことができます)月だけの出力を与えていた持っていた何

(dd[1] ? dd : "0" + dd[0]) + "/" + (mm[1] ? mm : "0" + mm[0]) + "/" + yyyy;

。正直なところ、なぜこれが起こるのか分かりません。しかし、中括弧内の三項コードをラップアップすることで問題を解決する必要があります。

+0

私は試していません。私はチェックイン時にチェックイン時に無効な日付を表示しています –

+0

私が提供したフィドルリンクを確認できますか?あなたのコードと私のコードで何が違うのか見てみましょう。私たちはそこに何かを見つけることができるでしょう –

+0

また、私はあなたが "dd/mm/yyyy"の日付形式を使用しているのを見て、このコードを実行しているマシンも同じフォーマットを持っていなければなりません。 –

関連する問題