0

new Date() によって返される現在の時刻を入力しようとしています...

$('#TSE').val(new Date().toJSON().substring(11,16));

...時間入力フィールド:

<input type="time" id="TSE">

値の形式は hh:mm で、入力フィールドで受け入れられます。

問題は、実際の時間より1 時間少なく表示されていることです。

たとえば、 new Date() が2012-11-16T11:59の場合、入力フィールドには10:59と表示されます

Safari Mobile (Web アプリ) でこの問題が発生しています。私のタイムゾーンは CET (GMT+1) です。数週間前に DST を失いました。

ありがとうございました。

4

2 に答える 2

1
$('#TSE').val(new Date().toLocaleTimeString());
于 2012-11-16T12:08:39.783 に答える
1

時刻を正しく表示していません。何が起こるかは次のとおりです。

> new Date().toJSON()
'2012-11-16T12:08:42.914Z'
> new Date().toJSON().substring(11,16)
'12:08'

'toJSON()日付を UTC に変換し、w/r/t ISO 8601の形式に変換します。日付の末尾には「Z」が付きます。これは UTC を示します。

.toJSON()保存または転送のために日付を正規化するのに適しているため、この変換を実行することは理にかなっています。ただし、UI で表示するには、別の書式設定関数を使用することをお勧めします。

参照: JavaScript での日付の書式設定に関するドキュメントはどこにありますか?

于 2012-11-16T12:11:55.733 に答える