Programming Self-Study Notebook

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

moment.jsの使い方(日時のフォーマット)

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

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

参考文献

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

フォーマットの指定の仕方

Moment.js | Docs
上記画面への到達経路:
 moment.jsリファレンスサイトのTop->Docs->Display->Format - 公式ドキュメントが網羅的に記述しています。
- バリエーションの範囲を把握するためにも一度目を通しておくことをお勧めします。

よく使いそうな組み合わせ

// 日時のセット
const d = moment('2020-07-05 15:34:56');

// 20200705153456
console.log(d.format('YYYYMMDDHHmmss'));

// 20200705033456
console.log(d.format('YYYYMMDDhhmmss'));

// 15:34:56
console.log(d.format('HH:mm:ss'));

// 03:34:56 午後
console.log(d.format('hh:mm:ss a'));

// 7/5/2020
console.log(d.format('l'));

// Jul 5, 2020
console.log(d.format('ll'));

// Jul 5, 2020 3:34 PM
console.log(d.format('lll'));

// Sun, Jul 5, 2020 3:34 PM
console.log(d.format('llll'));

// 07/05/2020
console.log(d.format('L'));

// July 5, 2020
console.log(d.format('LL'));

// July 5, 2020 3:34 PM
console.log(d.format('LLL'));

// Sunday, July 5, 2020 3:34 PM  console.log(d.format('l'));
console.log(d.format('LLLL'));

// 文字列をエスケープする場合は'[]'で囲む
console.log(d.format('[Today is ]:L'));

よく使いそうな記号

年・月・日・週

分類 記号 表示 備考
YY 70 71 ... 29 30
YYYY 1970 1971 ... 2029 2030
YYYYYY -001970 -001971 ... +001907 +001971 ※1
Y 1970 1971 ... 9999 +10000 +10001 ※2
y 1 2 ... 2020 ...
M 1 2 ... 11 12
Mo 1st 2nd ... 11th 12th
MM 01 02 ... 11 12
MMM Jan Feb ... Nov Dec
MMMM January February ... November December
(Day of Month) D 1 2 ... 30 31
Do 1st 2nd ... 30th 31st
DD 01 02 ... 30 31
(Day of Year) DDD 1 2 ... 364 365
DDDo 1st 2nd ... 364th 365th
DDDD 001 002 ... 364 365
曜日(Day of Week) d 0 1 ... 5 6
do 0th 1st ... 5th 6th
dd Su Mo ... Fr Sa
ddd Sun Mon ... Fri Sat
dddd Sunday Monday ... Friday Saturday
(Day of Week(Locale)) e 0 1 ... 5 6
(Day of Week(ISO)) E 1 2 ... 6 7
週数(Week of Year) w 1 2 ... 52 53
wo 1st 2nd ... 52nd 53rd
ww 01 02 ... 52 53
週数Week of Year (ISO) W 1 2 ... 52 53
Wo 1st 2nd ... 52nd 53rd
WW 01 02 ... 52 53

※1 1970年1月1日から前後に約273,790年の全時間の値の範囲をカバー
※2 これは、9999年を過ぎた日付のISO 8601規格に準拠しています

時・分・秒

分類 記号 表示 備考
H 0 1 ... 22 23
HH 00 01 ... 22 23
h 1 2 ... 11 12
hh 01 02 ... 11 12
k 1 2 ... 23 24
kk 01 02 ... 23 24
m 0 1 ... 58 59
mm 00 01 ... 58 59
s 0 1 ... 58 59
ss 00 01 ... 58 59

ローカライズされた形式

分類 記号 表示 備考
時間 LT 8:30 PM
秒の時間 LTS 8:30:25 PM
月の数字、日、年 L 09/04/1986
l 9/4/1986
月の名前、日、年 LL September 4, 1986
ll Sep 4, 1986
月の名前、日、年、時間 LLL September 4, 1986 8:30 PM
lll Sep 4, 1986 8:30 PM
月の名前、曜日、曜日、年、時間 LLLL Thursday, September 4, 1986 8:30 PM
llll Thu, Sep 4, 1986 8:30 PM

その他

分類 記号 表示 備考
Quarter Q 1 2 3 4
Qo 1st 2nd 3rd 4th
Era Year y 1 2 ... 2020 ...
Era N BC AD ※3
NN BC AD ※4
NNN Before Christ, Anno Domini ※5
Week Year gg 70 71 ... 29 30
gggg 1970 1971 ... 2029 2030
Week Year (ISO) GG 70 71 ... 29 30
GGGG 1970 1971 ... 2029 2030
AM/PM A AM PM
a am pm
小数秒(Fractional Second) S 0 1 ... 8 9
SS 00 01 ... 98 99
SSS 000 001 ... 998 999
SSSS... SSSSSSSSS 000[0..] 001[0..] ... 998[0..] 999[0..]
Time Zone z or zz EST CST ... MST PST ※6
Z -07:00 -06:00 ... +06:00 +07:00
ZZ -0700 -0600 ... +0600 +0700
Unix Timestamp X 1360013296
Unix Millisecond Timestamp x 1360013296123

※3 略称
※4 狭い時代名
※5 完全な時代名
※6 1.6.0,のよう Z / ZZフォーマットトークンはプレーンな瞬間のオブジェクトから推奨されていません。ただし、moment-timezoneアドオンで特定のタイムゾーンを使用している場合は、動作します。

その他の記事について

overworker.hatenablog.jp