[解決済み】JavaScriptで「無効な日付」のDateインスタンスを検出する
2022-02-15 03:19:45
質問
JSで有効な日付オブジェクトと無効な日付オブジェクトを区別したいのですが、その方法が分かりませんでした。
var d = new Date("foo");
console.log(d.toString()); // shows 'Invalid Date'
console.log(typeof d); // shows 'object'
console.log(d instanceof Date); // shows 'true'
を書くためのアイデアがあれば教えてください。
isValidDate
関数を使用することができます。
-
アッシュ推奨
Date.parse
これは、日付文字列が有効かどうかを確認するための信頼できる方法です。 - 可能であれば、APIがDateインスタンスを受け取り、それが有効かどうかをチェック/アサートできることが望ましい。Borgarのソリューションはそれを行うが、私はブラウザ間でそれをテストする必要があります。私はまた、よりエレガントな方法があるかどうか疑問に思っています。
-
アッシュは、私のAPIが以下のものを受け入れないようにすることを検討させました。
Date
インスタンスの検証を容易にするためです。 -
をテストするようBorgarから提案されました。
Date
のインスタンスをテストし、次にDate
の時間値です。日付が無効な場合、時刻の値はNaN
. で確認したところ ECMA-262 で、この動作は標準にあるもので、まさに私が求めているものです。
どのように解決するのですか?
私ならこうします。
if (Object.prototype.toString.call(d) === "[object Date]") {
// it is a date
if (isNaN(d.getTime())) { // d.valueOf() could also work
// date is not valid
} else {
// date is valid
}
} else {
// not a date
}
更新情報[2018-05-31]を掲載しました。 : 他のJSコンテキスト(外部ウィンドウ、フレーム、またはiframe)からのDateオブジェクトに関心がない場合、このシンプルなフォームが好まれるかもしれません。
function isValidDate(d) {
return d instanceof Date && !isNaN(d);
}
関連
-
[解決済み】このオブジェクトの "forEach "はなぜ関数でないのですか?
-
[解決済み】Vueが定義されていない
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScriptの日付の書式設定方法
-
[解決済み] JavaScriptで現在の日付を取得するには?
-
[解決済み】JavaScriptの比較では、どちらの等号演算子(== vs ===)を使うべきですか?
-
[解決済み】未定義のオブジェクトプロパティを検出する
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Facebook Graph API のクエリで with=location を使用すると "Uncaught (in promise) undefined" というエラーが発生する。
-
[解決済み】NodeJS "ESモジュールをロードするためにインポートを使用する必要があります。"
-
[解決済み】BootstrapのCollapseが折りたたまれない
-
[解決済み】コンソールがUnterminated JSX contentsエラーを投げる【終了しました
-
[解決済み】JavaScript ランタイムエラー:'$'が未定義です。
-
[解決済み】このオブジェクトの "forEach "はなぜ関数でないのですか?
-
[解決済み】Uncaught TypeError: 未定義のプロパティ 'msie' を読み取れない - jQuery tools
-
[解決済み】Vueが定義されていない
-
[解決済み】中央値の計算 - javascript
-
[解決済み】javascriptで日付が有効かどうかをチェックする【重複あり