LoginSignup
1
0

More than 5 years have passed since last update.

JavaScriptでゼロフィルした日時を取得する

Last updated at Posted at 2018-03-27

タイムスタンプとして、ゼロフィル(ゼロパディング、ゼロ埋め)した日時の文字列が必要なケースで使うJavaScriptコードを作成してみました。

ECMAScript2017版

IEだと動作しません。

コード

const getDateStr = () => {
   const now = new Date();
   return [now.getFullYear(),
           now.getMonth() + 1,
           now.getDate(),
           now.getHours(),
           now.getMinutes(),
           now.getSeconds()]
           .map(d => d.toString().padStart(2,'0'))
           .join('');
};

getDateStr(); // 20180102030405

解説

  1. 日付の各項目(年月日時分秒)を配列に格納する
  2. 各要素をpadStart関数で2文字なければ0で埋める
  3. 配列を連結する

IE対応版

IEでも利用できて、すでにゼロフィルされた文字列を使う方法。
タイムゾーンはUTCになるので注意。

コード

var getDateStr = function(){
    var now = (new Date()).toISOString();
    var nowArray = now.match(/\d{2,4}/g);
    nowArray.pop();
    return nowArray.join('');
};

getDateStr(); // 20180102030405

解説

  1. 日付のISO形式の文字列を取得する(YYYY-MM-DDTHH:mm:ss.sssZ
  2. 数字2〜4桁にマッチする部分を抽出して配列にする
  3. 配列からミリ秒の部分を削除(今回のケース)
  4. 配列を連結する

おまけ

ミリ秒つけるならもっとシンプルになります。

var dateStr = (new Date()).toISOString().match(/\d{2,4}/g).join('');

console.log(dateStr); // 20180102030405123
1
0
1

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
1
0