Gobble up pudding

プログラミングの記事がメインのブログです。

MENU

Angular moment.js脱却メモ

スポンサードリンク

f:id:fa11enprince:20180815053913j:plain

Angularを使っていてWebpackでのbundle.jsが肥大化したときにmoment.jsをやめたいときのメモ

可能な限りDateとimport { DatePipe } from '@angular/common';を使う

date -> string

moment

moment(date).format('YYYY-MM-DD HH:mm:ss.SSS');

TypeScript + DatePipe

this.datePipe.transform(date, 'yyyy-MM-dd HH:mm:ss.SSS');

※書式設定の仕方が違うので注意!

String -> toLocalString

moment

moment(dateString).toDate().toLocaleString();

TypeScript + DatePipe

this.datePipe.transform(dateString);

String -> Date

Dateを使う

Date.parse('2018-1-10 01:00:00.111');
Date.parse('2018-01-10T01:00:00.111');
new Date('2018-1-10 01:00:00.111');
new Date('2018-01-10T01:00:00.111');

時間差

moment

const diffFrame = moment(toDate).diff(moment(fromDate)) / 100;

Date

const diffFrame = (Date.parse(toDate) - Date.parse(fromDate)) / 100;

日付加算(ミリ秒)

moment

addedDate = moment(date).add(1000, 'milliseconds').toDate().toLocaleString();

Date

addedDate = this.datePipe.transform(Date.parse(date) + 1000);

ISOString

moment

moment(date).toISOString();

Date

new Date(date).toISOString()

経過時間

msから経過時間のhh:mm:ssを作るようなとき moment.durationだけはどうにもならない →自前実装するしかない

追記

date_fnsを使うのもありかも