JavaScriptで日付や時間の0詰めを実装する



PHPで0詰めをしようとした場合、printfで制御してやれば簡単に出来たのですが、JavaScriptの場合だとどうしても0詰めがうまく出来ない。
普通にやっちゃうと桁が合わずにカッコ悪い感じになってしまいます。

2012/8/6 14:4
2012/11/13 8:14
2012/1/3 8:9


調べた結果、ここのブログがとても参考になりました。
JavaScriptで日付取得と桁合わせ

コードは以下になります。

<script type="text/javascript">
// 1桁の数字を0埋めで2桁にする
var toDoubleDigits = function(num) {
  num += "";
  if (num.length === 1) {
    num = "0" + num;
  }
 return num;     
};

// 日付をYYYY/MM/DD HH:DD:MI:SS形式で取得
var yyyymmddhhmiss = function() {
  var date = new Date();
  var yyyy = date.getFullYear();
  var mm = toDoubleDigits(date.getMonth() + 1);
  var dd = toDoubleDigits(date.getDate());
  var hh = toDoubleDigits(date.getHours());
  var mi = toDoubleDigits(date.getMinutes());
  return yyyy + '/' + mm + '/' + dd + ' ' + hh + ':' + mi;
};
</script>

 

num+=”” の部分でNumber型をString型に強制的に変換してますね。
if文を使う形でよかったようです。

これでさきほど上にあげた少しかっこ悪かったものが桁が綺麗に揃い、かっこ良くなります。

2012/08/06 14:04
2012/11/13 08:14
2012/01/03 08:09

参考にどうぞ!

8月6日20:18 追記

@inaba_n 様にアドバイスをいただいたので追記します。
以下のように書くと更に高速になります。

<script>
var date = new Date();
var dd = ("0"+date.getDate()).slice(-2); // 08
</script>

 

上記の書き方だと、最初に紹介した書き方より高速に動きます。
無理やり型変換をしている部分がない分それだけ速く動きますね。
情報提供ありがとうございます!

この記事を読んでいるあなたにおすすめ!

JavaScriptを勉強するならこの本がおすすめです。僕はこれからJavaScriptを学び始めました。

初めてのJavaScript 第2版
Shelley Powers
オライリージャパン
売り上げランキング: 394,333

tagamidaiki.comの著者が教えるプログラミングスクール – class Tech(クラステック)

更新情報はFacebookページで!

ブログの更新、読んで役立つ他ブログの記事などを更新しています。




関連のある記事