<input id="datePicker" type="date" />
私は日付ピッカー入力で今日の日付を設定しますクロムで日付を入力します。
$(document).ready( function() {
var now = new Date();
var today = now.getDate() + '/' + (now.getMonth() + 1) + '/' + now.getFullYear();
alert(today);
$('#datePicker').val(today);
});
しかし、それは機能していません
このjsFiddleを編集 -Chromeで試してください。
フィドルリンク: http://jsfiddle.net/7LXPq/93/
これには2つの問題があります。
デモ用のフィドルリンクに従ってください:
var now = new Date();
var day = ("0" + now.getDate()).slice(-2);
var month = ("0" + (now.getMonth() + 1)).slice(-2);
var today = now.getFullYear()+"-"+(month)+"-"+(day) ;
$('#datePicker').val(today);
document.getElementById("datePicker").valueAsDate = new Date()
動作するはずです。
更新:date.toISOString().substr(0, 10)
でこれを行っています。受け入れられた答えと同じ結果を与え、良いサポートがあります。
私にとって、この問題を解決する最も簡単な方法は、moment.jsを使用して、この問題をわずか2行で解決することです。
var today = moment().format('YYYY-MM-DD');
$('#datePicker').val(today);
var today = new Date().toISOString().split('T')[0];
$("#datePicker").val(today);
上記のコードは動作します。
このコードがYYYY-MM-DD
であれば、コードは機能していました。これは日付形式のコンピューター標準です http://en.wikipedia.org/wiki/ISO_8601
日付入力を使用する場合、通常、これら2つのヘルパー関数を作成します。
// date is expected to be a date object (e.g., new Date())
const dateToInput = date =>
`${date.getFullYear()
}-${('0' + (date.getMonth() + 1)).slice(-2)
}-${('0' + date.getDate()).slice(-2)
}`;
// str is expected in yyyy-mm-dd format (e.g., "2017-03-14")
const inputToDate = str => new Date(str.split('-'));
次に、日付入力値を次のように設定できます。
$('#datePicker').val(dateToInput(new Date()));
そして、選択した値を取得します
const dateVal = inputToDate($('#datePicker').val())
Datetimepickerは常に入力形式YYYY-MM-DDを必要とします。モデルの表示形式やローカルシステムの日付時刻は気にしません。ただし、日時ピッカーの出力形式は、目的の(ローカルシステム)です。 my post に簡単な例があります。