どうも、イソップ(@Yuhiisk)です。
サーバーのAPIからデータを取得する時に、データ内に日付がある場合があります。
“`json
{
“id”:8,
“title”:”hoge”,
“created_at”:”2017-09-29T00:32:55.077022Z”,
“updated_at”:”2017-09-29T09:42:44.336096Z”
}
“`
`created_at` (作成日)や `updated_at` (更新日)ですね。
よく悩んでしまいがちなのが、日付の整形処理をフロントかサーバーかどちらで行うかという問題。
created_atとかupdated_atとかをAPIで貰うときって、API側で表示フォーマットの整形してもらうのがいいんだろうか?i18n絡むとめんどいもんな〜
— イソップ【POPCORN】 (@Yuhiisk) 2017年4月25日
Twitterで教えてもらいました。
柔軟性を重視してフロント側で処理しよう
してもらわないようにしてます。ページによって出す内容(時刻まで含むかどうかなど)が変わったりするので、その度にAPI修正したりプロパティ増やしたりするのは複雑化するので避けます。
— frontainer(シェルティ飼い) (@frontainer) 2017年4月25日
というコメントをいただきました。ありがとうございます!
はい、日付の表示の種類は変わることがあります。
例えば、`2017/9/30` とか `9/30` とか `2017/9/30 5:54` とか。
APIによって、レスポンス値を整形して返すのは条件や処理が増えるので、複雑化するということなんですね。
なのでフロント(JavaScript)で処理しましょうね、というお話でした。
すんごいスッキリ。
日付整形のJSライブラリ
個人的には次のどちらかを使っています。
date-fnsが使いやすいですね。(moment.jsは最近使ってない)
ES6でもimportして使えるので、めちゃくちゃ重宝してます。
“`sh
npm install date-fns –save
#or
yarn add date-fns
“`
“`js
var isToday = require(‘date-fns/is_today’)
isToday(new Date())
//=> true
“`
ドキュメントはこちらからどうぞ。