web-dev-qa-db-ja.com

入力タイプの日付に日付を設定します

<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で試してください。

79
Sender

フィドルリンク: http://jsfiddle.net/7LXPq/93/

これには2つの問題があります。

  1. HTML 5の日付コントロールは、SQLで使用する年-月-日の形式で受け入れます
  2. 月が9の場合、単純に9ではなく09に設定する必要があります。したがって、日フィールドにも適用されます。

デモ用のフィドルリンクに従ってください:

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);
129
Dhanasekar

document.getElementById("datePicker").valueAsDate = new Date()

動作するはずです。

97
int32_t

更新:date.toISOString().substr(0, 10)でこれを行っています。受け入れられた答えと同じ結果を与え、良いサポートがあります。

19
Oliv Utilo

私にとって、この問題を解決する最も簡単な方法は、moment.jsを使用して、この問題をわずか2行で解決することです。

var today = moment().format('YYYY-MM-DD');
$('#datePicker').val(today);
11
Umair Khalid
var today = new Date().toISOString().split('T')[0];
$("#datePicker").val(today);

上記のコードは動作します。

5
Gourav Makhija

このコードがYYYY-MM-DDであれば、コードは機能していました。これは日付形式のコンピューター標準です http://en.wikipedia.org/wiki/ISO_8601

4
Dominic

日付入力を使用する場合、通常、これら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())
1
aashah7

Datetimepickerは常に入力形式YYYY-MM-DDを必要とします。モデルの表示形式やローカルシステムの日付時刻は気にしません。ただし、日時ピッカーの出力形式は、目的の(ローカルシステム)です。 my post に簡単な例があります。

0
Eda Jede