『JavaScriptはたまに使う』程度の筆者による、メモ書き程度の内容です。
moment.jsとはJavasSriptで日時計算を楽にしてくれるライブラリーです。
参考文献
公式サイトはmomentjs.comです。
日時に関する判定を実施する
日時の妥当性の確認
isValid()
で日時の妥当性を確認することができます。24:00:00
がtrue
になったのは予想外でした。
const d1 = moment(`2020-07-05 12:34:56`); // true console.log(d1.isValid()); const d2 = moment(`2020-07-32 12:34:56`); // false console.log(d2.isValid()); const d3 = moment(`2020-07-31 23:59:59`); // true console.log(d3.isValid()); const d4 = moment(`2020-07-31 23:59:60`); // false console.log(d4.isValid()); const d5 = moment(`2020-07-31 23:60:00`); // false console.log(d5.isValid()); const d6 = moment(`2020-07-31 23:60:60`); // false console.log(d6.isValid()); const d7 = moment(`2020-07-31 24:00:00`); // true console.log(d7.isValid()); const d8 = moment(`2020-07-31 24:00:01`); // false console.log(d8.isValid()); const d9 = moment(`2020-08-01 00:00:00`); // true console.log(d9.isValid());
二つの日時の前後関係を判定する
const d0 = moment(`2020-07-24`); const d1 = moment(`2020-07-24`); const d2 = moment(`2020-08-09`); const d3 = moment(`2020-08-25`); // d1がd2より前であるかを判定する console.log(d1.isBefore(d0)); //false console.log(d1.isBefore(d2)); //true // d1がd2より後であるかを判定する console.log(d1.isAfter(d0)); //false console.log(d1.isAfter(d2)); //false // d1とd2が同じであるかを判定する console.log(d1.isSame(d0)); //true console.log(d1.isSame(d2)); //false // d1とd2が同じであるか、または前であることを判定する console.log(d1.isSameOrBefore(d0)); //true console.log(d1.isSameOrBefore(d2)); //true // d1とd2が同じであるか、または後であることを判定する console.log(d1.isSameOrAfter(d0)); //true console.log(d1.isSameOrAfter(d2)); //false // d2がd1とd3の間にあるかを判定する(「d1よりも後でd3よりも前」であるかの確認) console.log(d2.isBetween(d1,d3)); //true // d2がd1とd3の間にあるかを判定する(「d3よりも後でd1よりも前」であるかの確認) console.log(d2.isBetween(d3,d1)); //false
閏年を判定する
const d = moment(`2020-08-09`); console.log(d.isLeapYear()); //true
モーメントオブジェクトであることを判断する
moment.isMoment() // false moment.isMoment(new Date()) // false moment.isMoment(moment()) // true
デイトオブジェクトであることを判断する
moment.isDate(); // false moment.isDate(new Date()); // true moment.isDate(moment()); // false