ホームページ > 記事 > ウェブフロントエンド > dd-mm-yyyy 文字列を JavaScript 日付オブジェクトに変換するにはどうすればよいですか?
Convert dd-mm-yyyy String to Date
を使用して dd-mm-yyyy 文字列を有効な日付オブジェクトに解析できないJavaScript の Date コンストラクターは主に、コンストラクターによって認識されない「-」記号の存在が原因です。これを克服するには、別のアプローチが必要です。
解決策: "-" で分割
解決策の 1 つは、'-' を使用して文字列を個々のコンポーネントに分割することです。記号を区切り文字として使用し、日、月、年の値を使用して新しい Date オブジェクトを作成します。
var from = $("#datepicker").val().split("-") var f = new Date(from[2], from[1] - 1, from[0])
解決策: Regex を使用します
正規表現を使用することもできます。個々の日付コンポーネントを抽出し、有効な日付文字列を構築するために使用されます。
var date = new Date("15-05-2018".replace( /(\d{2})-(\d{2})-(\d{4})/, "//"))
推奨: "-" で分割
どちらのアプローチも有効ですが、 "split on -" メソッドは、おそらくより複雑な正規表現の一致に依存せずに、入力文字列の既知の形式を直接ターゲットにするため、この特定のタスクにとってより具体的かつ効率的です。
再利用性
この変換がコード内で複数回実行される場合は、再利用性と保守性を考慮して関数にカプセル化することをお勧めします:
function toDate(dateStr) { var parts = dateStr.split("-") return new Date(parts[2], parts[1] - 1, parts[0]) }
関数の使用:
var f = toDate($("#datepicker").val()) var t = toDate($("#datepickertwo").val())
最新の JavaScript
最新の JavaScript 環境では、配列の構造化によりコードを簡素化できます。
const toDate = (dateStr) => { const [day, month, year] = dateStr.split("-") return new Date(year, month - 1, day) }
以上がdd-mm-yyyy 文字列を JavaScript 日付オブジェクトに変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。