0
0

JS 時間のフォーマットを整形する

Posted at

JS のフォーマットを整形する

現在の時刻を取得する

// 時間のObject
var date = new Date();
// 年を取得する
var year = date.getFullYear();
// 月を取得する(JavaScriptの世界に月は0から換算されるので +1が必要)
var month = date.getMonth() + 1;
// 日を取得する
var day = date.getDate();

// 時を取得する
var hour = date.getHours();
// 分を取得する
var minute = date.getMinutes();
// 秒を取得する
var second = date.getSeconds();
// ミリ秒を取得する
var millisecond = date.getMilliseconds();

ここまで、時間を取得するコードをまとめました。
これだけで、フォーマットを整形するができないので、メソッドを用意してもよいでしょう

function formatDate(date, format) {
  var year = date.getFullYear();
  var month = date.getMonth() + 1;
  var day = date.getDate();

  var hour = date.getHours();
  var minute = date.getMinutes();
  var second = date.getSeconds();
  var millisecond = date.getMilliseconds();

  return format
    .replace('YYYY', year)
    .replace('MM', month)
    .replace('DD', day)
    .replace('hh', hour)
    .replace('mm', minute)
    .replace('ss', second)
    .replace('ms', millisecond);
}

引数のformatは任意のフォーマットを渡して、String.prototype.replaceで変換を行う

実行してみよう

var d = new Date();
console.log(formatDate(d, 'YYYY-MM-DD hh:mm:ss'));

2024-7-15 12:14:18 のように出力される

ちょっと問題があるようですね、月のデータは一桁足りないよね、どうする????
String.prototype.padStart()メソッドを利用して、補填してもよいでしょう

ただ、取得してきた時間の型は全部intなので、Stringに変換する必要があり、コードの最終は以下になります。

function formatDate(date, format) {
  var year = date.getFullYear().toString().padStart(4, '0');
  var month = (date.getMonth() + 1).toString().padStart(2, '0');
  var day = date.getDate().toString().padStart(2, '0');

  var hour = date.getHours().toString().padStart(2, '0');
  var minute = date.getMinutes().toString().padStart(2, '0');
  var second = date.getSeconds().toString().padStart(2, '0');
  var millisecond = date.getMilliseconds();

  return format
    .replace('YYYY', year)
    .replace('MM', month)
    .replace('DD', day)
    .replace('hh', hour)
    .replace('mm', minute)
    .replace('ss', second)
    .replace('ms', millisecond);
}

var d = new Date();
console.log(formatDate(d, 'YYYY-MM-DD HH:mm:ss'));

2024-07-15 12:43:02のように出力される

以上、また次回.....

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0