【Javascript】Date型のフォーマットをyyyyMMddに変換する

 

はじめに

今回は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文を使ってもいいのですが、

もう少しスタイリッシュな方法が分かったので、それも共有します。

やっていることは、

  1. 得られたMonthにとりあえず関係なく先頭にゼロをつける
  2. slice(-2)によって右から二桁の値を得る
  3. これにより、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.

なるほどっ!!って思いましたね。

終わり

コメント

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