2016-10-19 6 views
0

すべてのブラウザ(Chromeの場合はHTML5、IE11とFirefoxでは動作させるためのJavaScript)の入力タイプは日付が入力されています。日付をYYYY-MM-DDに変換

<input type="date" name="Date" id="Date" min="2016-10-19" max="2016-11-03"/> 

しかし、奇妙なことが起こっています。 Chromeで日付を選択すると、データベースに投稿されますが、IE11またはFirefoxで日付を選択すると、無効な形式として拒否されます。

私のスクリプトは、それはこのようになります理由ですHTML、内部の現在:

 <script type="text/javascript"> 
     var datefield=document.createElement("input") 
     datefield.setAttribute("type", "date") 
     if (datefield.type!="date"){ //if browser doesn't support input type="date", load files for jQuery UI Date Picker 
      document.write('<link href="css/jquery-ui.css" rel="stylesheet" type="text/css" />\n') 
      document.write('<script src="scripts/jquery.min.js"><\/script>\n') 
      document.write('<script src="scripts/jquery-ui.min.js"><\/script>\n') 
     } 
    </script> 
    <script type="text/javascript"> 
     if (datefield.type!="date"){ //if browser doesn't support input type="date", initialize date picker widget: 
      jQuery(function($){ //on document.ready 
       $('#Date').datepicker({ 
        showOtherMonths: true, 
        selectOtherMonths: true, 
        changeMonth: true, 
        minDate: '10/19/2016', 
        maxDate: '11/03/2016', 
       }); 
      }) 
     } 
    </script> 
+2

これは、Moment.jsの場合、日付を渡して必要な出力とビオラを指定するのに適しています。 –

+0

[JavaScriptで日付を書式設定するためのドキュメントはどこにありますか?](http://stackoverflow.com/questions/1056728/where-can-i-find-documentation-on-formatting-a-date-in) -javascript) –

+0

これについては何も "奇妙な"ものはありません。仕様に従って、日付入力フィールドは日付値を常に提出のための 'yyyy-mm-dd'とフォーマットしますが、jQueryのdatepickerは' mm/dd/yy'のデフォルトフォーマットを使用し、MySQLは後のフォーマットを好まない前者に問題はない。 – CBroe

答えて

0

はそれを得ました! dateFormatプロパティを追加して、yy-mm-ddの方が私のデータベースが必要としていた方向に向ける必要がありました。 dd/mm/yyまたはyy/mm/ddに変更することができますが、手配が必要です。

<script type="text/javascript"> 
     if (datefield.type!="date"){ //if browser doesn't support input type="date", initialize date picker widget: 
      jQuery(function($){ //on document.ready 
       $('#Date').datepicker({ 
        dateFormat: 'yy-mm-dd', 
        showOtherMonths: true, 
        selectOtherMonths: true, 
        changeMonth: true, 
        minDate: '2016-10-19', 
        maxDate: '2016-11-03' 
       }); 
      }) 
     } 
    </script> 
関連する問題