4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Node.jsで明日を取得 (date-utils)

Last updated at Posted at 2019-06-12

moment.jsではなくこちら(date-utils)を使ってみたメモです。

ちなみに↓で後述する内容の通り、あまり見ない書き方で戸惑ったのでメモっておこうと思った感じです。

誤解の無いように最初に書いておくと普通はMoment.js使うのがいいと思います。(くどいけど最後にも書いた)

準備

$ npm i date-utlis

これでOK。ちなみに環境はNode.js v12.2.0です。

Node.jsで明日

app.js
'use strict';

require('date-utils');
let tomorrow = Date.tomorrow();
console.log(tomorrow);

このコードを見ると分かりますが、requireするだけっていう使い方がNode.jsだとあんまり見ない気がしますね。
requireするともともとのDateオブジェクトが拡張される模様。

moment.jsで明日を取得だと、moment.add('days',1)こんな雰囲気なので、この書き方よりはtomorrow()は直感的に明日ってのが分かって分かりやすいですね。

Node.jsで昨日

app.js
'use strict';

require('date-utils');
let yesterday = Date.yesterday();
console.log(yesterday);

ちなみに昨日だとこんな感じ。これも直感的。

現在時刻

app.js
'use strict';

require('date-utils');

let nowFormatted = new Date().toFormat("YYYY年MM月DD日 HH24時MI分SS秒");
console.log(nowFormatted);

その他

こんな感じ感じの関数が使える模様です。

{
  today: [Function],
  UTCtoday: [Function],
  tomorrow: [Function],
  UTCtomorrow: [Function],
  yesterday: [Function],
  UTCyesterday: [Function],
  validateDay: [Function],
  validateYear: [Function],
  validateSecond: [Function],
  validateMonth: [Function],
  validateMinute: [Function],
  validateMillisecond: [Function],
  validateHour: [Function],
  compare: [Function],
  equals: [Function],
  equalsDay: [Function],
  getDayNumberFromName: [Function],
  getMonthNumberFromName: [Function],
  getMonthNameFromNumber: [Function],
  getMonthAbbrFromNumber: [Function],
  isLeapYear: [Function],
  getDaysInMonth: [Function]
}

所感

簡単な使い方ならこれで良さそう。でも計算とかしようとするとMoment.jsの方がよさげな印象ですね。

ちなみに、昔書いた記事(Node.jsで現在時刻を取得)を見つけたんですけど、こちらでもdate-utilsを使ってた模様。
moment.jsを知らなかったのかなんなのかは謎です。

全然関係ないけど、明日を取得するのにメソッド名がtomorrow()じゃなくてgetTomorrow()とかにした方が明日を掴む的なノリでエモいのになぁと思ってしまった。

あまり見ない書き方になってるし既存のDateオブジェクトを拡張してる雰囲気が気持ち悪いみたいな声もありそう。

tomorrow()yesterday()は分かりやすいけどnextweek()とかは無さそうだったので、明日か昨日だけを取りたいときとかしか使い勝手はよく無いかもしれない。

結論(?)

特にこだわりなければMoment.js使った方がいいと思います。

あと最近はdayjsの方がmoment.jsより軽くていいよって話題もありましたね。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?