Programming Self-Study Notebook

勉強したことを忘れないように! 思い出せるように!!

moment.jsの使い方(日時に関する判定)

f:id:overworker:20200406080809j:plain:h250

JavaScriptはたまに使う』程度の筆者による、メモ書き程度の内容です。
moment.jsとはJavasSriptで日時計算を楽にしてくれるライブラリーです。

参考文献

公式サイトはmomentjs.comです。

日時に関する判定を実施する

日時の妥当性の確認

  • isValid()で日時の妥当性を確認することができます。
    • 24:00:00trueになったのは予想外でした。
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

その他の記事について

overworker.hatenablog.jp