1. exsrx97

    Posted

    exsrx97
Changes in title
+Firebaseのタイムスタンプをいい感じの日付型へ変換
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,47 @@
+#はじめに
+Firebaseでデータにタイムスタンプを持たせることは多いが、そのデータをいい感じに表示させる方法
+
+#タイムスタンプ素材の型
+まずタイムスタンプをそのままの型でコンソールに表示すると、一見不思議な数列が返ってくる
+
+```test.jsx
+console.log(timestamp);
+
+ => 063758775786.728000000
+```
+
+これをtoDate()で日付型に変換すると、何時なのか分かる型で返ってきたものの、このままアプリに表示するには少しブサイク
+
+```test.jsx
+console.log(timestamp.toDate());
+
+ => Wed Jun 09 2021 04:03:06 GMT+0900 (日本標準時)
+```
+
+#いい感じに変換する関数を作る
+
+
+```test.jsx
+const datetimeToString = (date) => {
+ return date.getFullYear() + '-'
+ + ('00' + (date.getMonth() +1)).slice(-2)
+ + '-' + ('00' + date.getDate()).slice(-2)
+ + ' ' + ('00' + date.getHours()).slice(-2)
+ + ':' + ('00' + date.getMinutes()).slice(-2)
+ + ':' + ('00' + date.getSeconds()).slice(-2)
+}
+```
+
+この関数に日付型へ変換したタイムスタンプを引数として渡すと、、、
+
+```test.jsx
+const date = datetimeToString(updated_at.toDate())
+console.log(date);
+ => 2021-06-09 04:03:06
+```
+
+よくある形へ変換できた!
+
+#おわりに
+Firebaseのドキュメントは肌に合わない
+