[解決済み] Momentjs : "Invalid date "を防ぐには?
質問
私は次のコードを持っています。
var fomattedDate = moment(myDate).format("L");
時々
moment(myDate).format("L")
は、"Invalid date"を返すので、それを防いで代わりに空の文字列を返す方法があれば知りたいのです。
解決方法は?
TL;DR
有効な日付があるかどうかを調べることが目的であれば、Momentの
isValid
:
var end_date_moment, end_date;
jsonNC.end_date = jsonNC.end_date.replace(" ", "T");
end_date_moment = moment(jsonNC.end_date);
end_date = end_date_moment.isValid() ? end_date_moment.format("L") : "";
...これは
""
には
end_date
の文字列は、日付が無効である場合に使用されます。
詳細
ここには、2つの全く異なるものが存在します。
まず1つ目。
0000-00-00T00:00:00
は
は無効な日付です。1月(このフォーマットでは月1)より前の月はありませんし、月1日よりも前の日もありません。ですから
0000-00-00
は意味をなさない。
0000-01-01T00:00:00
は有効であり
moment("0000-01-01T00:00:00").format("L")
を返します。
"01/01/0000"
を使用します。
もし、有効な日付(例えば、あなたの
2015-01-01T00:00:00
の例)、コードは問題ありません。
2つ目
console.log(Object.prototype.toString.call(end_date));
有効な日付でも[object String]が返されるので、私の場合はif条件が機能していません。
もちろん、そうです。
format
は文字列を返しますが、あなたは
format
を取得するために
end_date
.
MomentJSのオブジェクトが無効な日付を持っているかどうかを知りたい場合は、このようにチェックすることができます。
if (theMomentObject.isValid()) {
// It has as valid date
} else {
// It doesn't
}
を知りたい場合は
Date
オブジェクトの日付が無効であることを示します。
if (!isNaN(theDateObject)) {
// It has as valid date
} else {
// It doesn't
}
...というのは
isNaN
は日付を原始的な形に強制します。それは、1月1日 1970 00:00:00 GMT からの基礎となるミリ秒の数で、日付が "invalid" であるとき、それが含む数は次のようになります。
NaN
. そこで
isNaN(theDateObject)
は、日付が無効なときに真になります。
関連
-
[解決済み】JavaScriptで「無効な日付」のDateインスタンスを検出する
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] なぜGoogleはJSONレスポンスにwhile(1);を前置するのでしょうか?
-
[解決済み] JavaScriptのオブジェクトをループスルーまたは列挙するにはどうすればよいですか?
-
[解決済み] event.preventDefault() vs. return false
-
[解決済み] JavaScriptで文字列をbooleanに変換するにはどうしたらいいですか?
-
[解決済み] jQueryの「exists」関数はありますか?
-
[解決済み] JavaScriptで日付の書式設定に関するドキュメントはどこにありますか?
-
[解決済み】JavaScript版sleep()とは?)
最新
-
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のコールバック関数がFirefoxで「Callback is not a function」というエラーを投げる
-
[解決済み】「Uncaught TypeError: Chromeで "Illegal invocation "が発生する。
-
[解決済み】Javascript - ERR_CONTENT_LENGTH_MISMATCH
-
[解決済み】Uncaught SyntaxError: JSON の位置 0 に予期しないトークン u があります。
-
[解決済み】 Uncaught Error: Invariant Violation: 解決済み】 Uncaught Error: Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function but got: object.
-
[解決済み】Redux TypeError: 未定義のプロパティ 'apply' を読み取れない
-
[解決済み】TypeError: res.status は関数ではありません。
-
[解決済み] [Solved] Uncaught Invariant Violation: 前のレンダリング中よりも多くのフックをレンダリングする
-
[解決済み] Uncaught (in promise) TypeError: フェッチに失敗してCorsエラー
-
[解決済み】中央値の計算 - javascript