[解決済み】dd-mm-yyyyの文字列を日付に変換する
2022-04-12 22:59:58
質問
JavaScriptでdd-mm-yyyy形式の文字列を日付オブジェクトに変換するには、以下のようにします。
var from = $("#datepicker").val();
var to = $("#datepickertwo").val();
var f = new Date(from);
var t = new Date(to);
("#datepicker").val()
には、dd-mm-yyyy という書式の日付が含まれています。
次のようにすると、"Invalid Date"が表示されます。
alert(f);
これは'-'記号が原因なのでしょうか?どうすれば克服できるのでしょうか?
どのように解決するのですか?
で分割してください。
文字列を必要な部分にパースします。
var from = $("#datepicker").val().split("-")
var f = new Date(from[2], from[1] - 1, from[0])
正規表現を使用する
var date = new Date("15-05-2018".replace( /(\d{2})-(\d{2})-(\d{4})/, "$2/$1/$3"))
なぜ正規表現を使わないのですか?
ハイフンで区切られた3つの部分からなる文字列を扱うことが分かっているからです。
しかし、同じ文字列を別の文字列の中で探すのであれば、正規表現が適している。
再利用
サンプルコードやコードベース内の他の場所で複数回行っているので、関数でラップしてください。
function toDate(dateStr) {
var parts = dateStr.split("-")
return new Date(parts[2], parts[1] - 1, parts[0])
}
として使用する。
var from = $("#datepicker").val()
var to = $("#datepickertwo").val()
var f = toDate(from)
var t = toDate(to)
また、関数にjQueryを使っても構わないのであれば。
function toDate(selector) {
var from = $(selector).val().split("-")
return new Date(from[2], from[1] - 1, from[0])
}
として使用する。
var f = toDate("#datepicker")
var t = toDate("#datepickertwo")
モダンなJavaScript
もしあなたがよりモダンなJSを使うことができるなら、配列の再構築もいい感じです。
const toDate = (dateStr) => {
const [day, month, year] = dateStr.split("-")
return new Date(year, month - 1, day)
}
関連
-
[解決済み] テスト
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] JavaScriptで文字列をbooleanに変換するにはどうしたらいいですか?
-
[解決済み] JavaScriptの日付の書式設定方法
-
[解決済み] jQueryでフォームデータをJavaScriptオブジェクトに変換する
-
[解決済み] オブジェクトの配列から、プロパティの値を配列として取り出す。
-
[解決済み] JavaScriptで日付の書式設定に関するドキュメントはどこにありますか?
-
[解決済み] JSON文字列を安全にオブジェクトに変換する
-
[解決済み] JavaScript の日付を yyyy-mm-dd でフォーマットする。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
JavaScriptにおけるマクロタスクとミクロタスクの詳細
-
元のイベントが実行されなかった後に要素を追加するためのjQueryソリューション
-
Vueの一般的な組み込みディレクティブの説明
-
[解決済み】Node Version Manager のインストール - nvm コマンドが見つかりません。
-
[解決済み】TypeError: Router.use() はミドルウェアの関数を要求しているが、Object を取得した。
-
[解決済み] Web API エラー - このリクエストはブロックされました; コンテンツは HTTPS で提供されなければなりません
-
[解決済み] TypeError: $.ajax(...) is not a function?
-
[解決済み】TypeScript-のAngular Frameworkエラー - "exportAsがngFormに設定されたディレクティブはありません"
-
JavaScriptのStringに関する共通メソッド
-
OSSアップロードエラーを解決する: net::ERR_SSL_PROTOCOL_ERROR