28

フォームに datetime-local html コントロールがあり、JS または jQuery を介して動的に日付と時刻を設定する必要があります。どうすればいいですか?

<input type="datetime-local" id="publishDate" required/>

私は試した

$("#publishDate").val("2013-3-18 13:00");
$("#publishDate").val("2013-3-18T13:00");
$("#publishDate").val(new Date().toLocalString());

しかし、何も機能しませんでした。

4

8 に答える 8

30

これはトリックを行うでしょう

$("#publishDate").val("2013-03-18T13:00");

サンプルを機能させるには、月に 2 桁を使用する必要があります。

于 2013-03-18T19:07:43.743 に答える
15

現在の日付を設定したい場合は、これを試すことができます:

__Method 1:__

$(document).ready(function(){
    $('input[type=datetime-local]').val(new Date().toJSON().slice(0,19));
});

__Method 2:__

function zeroPadded(val) {
  if (val >= 10)
    return val;
  else
    return '0' + val;
}

$(document).ready(function(){
  d = new Date();
  $('input[type=datetime-local]').val(d.getFullYear()+"-"+zeroPadded(d.getMonth() + 1)+"-"+zeroPadded(d.getDate())+"T"+d.getHours()+":"+d.getMinutes()+":"+d.getSeconds());
});

注: $('input[type=datetime-local]') を、またはIddatetime-local フィールドに置き換えることができます。NameClass

編集: d.getMonth() は 0 ~ 11 の値を返すため、適切な月を入力するには、結果に 1 を追加する必要があります。

于 2013-11-12T07:00:47.940 に答える
10

どうですか?

var now=new Date();
console.log(new Date(now.getTime()-now.getTimezoneOffset()*60000).toISOString().substring(0,19));

于 2014-09-23T11:57:43.363 に答える
5

現在の UTC 時刻を設定するjQuery メソッドを作成しました。フィールドの初期化datetimeや入力に便利です。datetime-local

これを使用してフィールドを初期化する方法を次に示します。

$('input[type="datetime"]').setNow();

または、引数を渡して、true値のないフィールドのみを設定します。

$('input[type="datetime"]').setNow(true);
于 2014-02-04T17:05:56.373 に答える
2

これを行う簡単な方法を次に示します。

const now = (new Date().toLocaleString("sv-SE") + '').replace(' ','T');
console.log(now);

于 2020-09-06T08:52:18.257 に答える
0

このコンポーネントは、まだ適切に指定されていないため、めちゃくちゃです。実装も風変わりである可能性があります。

これを行う正しい方法は、日付オブジェクトを渡すことです。JS と DOM では、これがないと意味がありません。文字列操作を行うと、Zalgo が呼び出されます。遅かれ早かれ、ロケールまたはタイムゾーンで壊れます。

私はこのようなものを探しましたが、Chrome 46 で見つかりました:

$('input[type=datetime-local]').prop('valueAsNumber', Math.floor(new Date() / 60000) * 60000); // 60seconds * 1000milliseconds

秒とミリ秒を削除しないと、入力フィールドに表示されます。

valueAsDate プロパティもありますが、不思議なことに:

Uncaught DOMException: Failed to set the 'valueAsDate' property on 'HTMLInputElement': This input element does not support Date values.

そのため、まだ実装が完了していないか、そのプロパティに不適切な名前を選択しています (何かが設定されていても null として表示されます)。

于 2016-10-31T21:23:28.437 に答える