1

Chromeの最後のいくつかのメジャーバージョンでは、次のように、ユーザーのロケールに合わせてフォーマットされた値で日付入力フィールドを表示できます。

<input type="date" value="2012-11-20">

Mac OS Xでは、米国が私の地域として設定されており(デフォルトの日付形式)、Chromeは次のように表示します。

表示する日付入力フィールド

JavaScriptで表示された文字列にアクセスする方法はありますか?(この回答では、これをプレゼンテーション形式と呼んでいます。)プロパティとメソッドは、さまざまな形式で同じ日付を表示しますが、プレゼンテーション形式と完全に一致するものはinput.valueありinput.valueAsDate.toLocaleDateString()ません。

これが私の試みのいくつかのフィドルです:http://jsfiddle.net/peterjmag/7KSbA/2/。MacにChrome23をインストールすると、次の出力が得られます。

[11/20/12]

input.value
2012-11-20

input.valueAsDate
Mon Nov 19 2012 17:00:00 GMT-0700 (MST)

input.valueAsDate.toDateString()
Mon Nov 19 2012

input.valueAsDate.toLocaleDateString()
Monday, November 19, 2012

input.valueAsDate.toISOString()
2012-11-20T00:00:00.000Z

編集:これは私にそれが不可能だと思わせる同様の質問です(つまり、文字列を再フォーマットするメソッドを定義しないと)。

4

2 に答える 2

2

日付の表示は完全にブラウザーによって処理されるため、テキストを直接取得する方法はありません (さらにポイントを明確にするために、Inspect Element を使用して、Chrome または Firefox で探している文字列を見つけてください。に)。

ただし、各ブラウザは毎回同じ形式で日付を表示するため、スクリプトでブラウザを検出し、ブラウザ自体と同じ方法で日付をフォーマットすることができますそれが最善の選択肢になると思います。

于 2012-11-21T02:00:00.503 に答える
1
input.select();
var displayString = window.getSelection().toString();

これは Chrome 23 で動作しますが、Chrome 24 では動作しないと思います。

于 2012-11-21T05:05:13.777 に答える