JavaScriptでの日付の文字列比較
次のテキスト形式で2つの日付があるとします:
let date1 = '2020-12-01';
let date2 = '2019-12-01';
この場合、これらの日付を比較して、 どちらが大きいかを知ることができます:
console.log(date1 > date2); // trueを出力
これらの日付の比較はどのように行われるのでしょうか? 私たちの日付は文字列であり、JavaScriptはそれらを 文字列として比較するという事実によるものです。 つまり、最初に2つの日付の最初の文字を比較します: それらが同じ場合、JavaScriptは2番目の文字を比較し、 違いが見つかるまで同様に続けます。 日付の形式が最初に年、次に月、そして日の順に なっているおかげで、このような比較が可能なのです。
最初の年の数字が2番目の年の数字よりも大きい場合、 月や日がどうなっているかはもはや重要ではないということです - 最初の年は確実に大きいです。もし年が同じであれば、 月が大きい日付の方が大きくなります。 月も同じであれば、日が大きい日付の方が大きくなります。 まあ、日も同じであれば、日付は等しくなります。
日付が同じ形式であることも重要です。 この場合、日付の部分の区切り文字はハイフンです。 これはもちろん必須ではありません。 例えば、ドットを置くこともできます:
let date1 = '2020.12.01';
let date2 = '2019.12.01';
または区切り文字をなくすこともできます:
let date1 = '20201201';
let date2 = '20191201';
比較が正しく行われるために重要なのは、 配置が次の順序であることです:最初に年、次に月、そして日。
以下の2つの日付を比較し、どちらが大きいかを示す メッセージを出力するコードを書いてください:
let date1 = '2020-11-30';
let date2 = '2020-12-01';