NCMB(mBaas)のcreateDateを任意の形式で表示したい

調べてみるとNMCBのデータ作成時のcreateDateは「ISO 8601形式」と言われるものみたいです。ごめんなさい、この辺は全くわかりません。

しかし、やりたいことははっきりしています。個人的に「ISO 8601形式」のままブラウザに表示すると明確時間がわかりにくいです。よって、

  • 「2000年1月1日、1時1分1秒」または
  • 「2000/01/01 01:01:01」の形式にしたいです。

まずこちらを参考にさせていただきました。

JavaScriptでISO8601形式の日付を扱う – キリウ君が読まないノート
https://note.kiriukun.com/entry/20191124-iso-8601-in-javascript#ISO8601ToDate

NCMBの開発ドキュメント(https://mbaas.nifcloud.com/doc/current/)を見て、「results[i][“createDate”]」で日時を取得します。

let ts = Date.parse(array[i]["createDate"]);

//引用
//Date.parse() - JavaScript | MDN
//https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date/parse
/*
「Date.parse() メソッドは、日時を表す文字列を解釈し、協定世界時 (UTC) 1970 年 1 月 1 日 00:00:00 からの経過時間を表すミリ秒単位の数値を返します。」
*/

ちょっと何言っているかわかりません!(サンドウィッチマン風)

しかし、「ts」のままではまだまだわかりにくいです。調べます。

次にこちらを参考にさせていただきました。

フリーな人生:ISO8601形式の日付をJavascriptで日本時間に変換
http://blog.livedoor.jp/koreedablog/archives/1930758.html
「ISO8601とは日付と時刻の表記に関する国際規格で、「2014-10-08T12:00:00.000Z」のような形式になっています。」

同じ状態です。よって、こちらのメソッドを利用すれば再変換できるようです。

//上記の「let ts」でDateを再作成し「.toLocaleString()」を使います。

let dt = new Date(ts).toLocaleString();

// 結果 2000/01/01 01:01:01

これで見やすくなりました。
何やっているか全然わかりません。開発が落ち着いたらDateを学びなおしたいです。

タイトルとURLをコピーしました