はじめに
今回はDate型を任意のフォーマットに変換する方法を紹介します。
Timestamp型をDate型に変換する方法についても少し。
Timestamp型とDate型について
Timestamp型
1970年1月1日から現在までのミリ秒を示しています。
Date型
みなさんが見て認識しやすい、カレンダーなどでよくみる表示形式
現在なら、「2021-08-27 07:00:00」というような形式です。
Date型のフォーマット変換
一般的な変換
基本的にはDate型を宣言する際にその引数にTimestampを入力するだけです。
また、引数になにも指定しないことで現在のDateを知ることもできます。
ソースコード
var timestamp = 1630015587085
var specifyDate = Date(timestamp)
var currentDate = Date()
動作確認
See the Pen TimestampToDateConvertion_1 by atsushiIMG (@atsushiimg) on CodePen.
日時のフォーマットを変えながら出力
自分でそれぞれのパラメータを抽出して、自分のアプリに最適なフォーマットを組むこともできます。
取得できるパラメータはもう少し存在するので詳しくは確認してみてください。
ソースコード
var currentDate = new Date()
var currentYear = currentDate.getFullYear()
var currentMonth = currentDate.getMonth()
var currentDay = currentDate.getDay()
var currentHours = currentDate.getHours()
var currentMinutes = currentDate.getMinutes()
var currentSeconds = currentDate.getSeconds()
var currentFormattedDate = currentYear + "/" + currentMonth + "/" + currentDay + " " + currentHours + ":" + currentMinutes + ":" + currentSeconds
動作確認
See the Pen TimestampToDateConvertion_2 by atsushiIMG (@atsushiimg) on CodePen.
月、日を完全なMMdd形式で出力する
上記コードでフォーマットされたDateを取得することに関しては解決したと思いきや、
月、日の値が若干厄介な時があります。
というのも、それらは数値形式での出力でしかないんです。
つまり
- 12月 –> 12
- 5月 –> 5
というように桁数が変わってしまうのです。
どちらも2桁で合わせるために、If文を使ってもいいのですが、
もう少しスタイリッシュな方法が分かったので、それも共有します。
やっていることは、
- 得られたMonthにとりあえず関係なく先頭にゼロをつける
- slice(-2)によって右から二桁の値を得る
- これにより、Monthから得られた値が1桁の時はゼロがついた値が取得される
それを解決したのが以下↓
ソースコード
var currentDate = new Date()
var currentYear = currentDate.getFullYear()
var currentMonth = ('0' + currentDate.getMonth()).slice(-2)
var currentDay = ('0' + currentDate.getDay()).slice(-2)
var currentHours = currentDate.getHours()
var currentMinutes = currentDate.getMinutes()
var currentSeconds = currentDate.getSeconds()
var currentFormattedDate = currentYear + "/" + currentMonth + "/" + currentDay + " " + currentHours + ":" + currentMinutes + ":" + currentSeconds
動作確認
See the Pen TimestampToDateConvertion_3 by atsushiIMG (@atsushiimg) on CodePen.
なるほどっ!!って思いましたね。
終わり
コメント