yyyymmddhhiiss形式を日付け変換する時の php4 php5 の方法

日付け変換

yyyymmddhhiiss形式の文字列を日付けに変換したかったです。
つまり

echo date("YmdHis", time())."\n";

これ実行して出てくる文字列をふたたびdate関数に渡せるようにしたかった感じ。

strtotime

最も単純に使ってみました。

  1 <?php
  2 
  3 $time = date("YmdHis", time());
  4 echo strtotime($time)."\n";
  5 echo date("Y/m/d H:i:s", strtotime($time))."\n";
  6 
  7 ?>

結果は php5 と php4 で違いました。

php5.2
[ryoff@php5-ryoff ~/mycode/php5]$ php strtotime.php
1287109712
2010/10/15 11:28:32
php4.3
[ryoff@php4-ryoff ~/mycode/php4]$ php strtotime.php
-1
1970/01/01 08:59:59

strtotimeの時点で、-1帰ってくるなぁ。
php4ではうまく動いてくれなかったので、力技....

  1 <?php
  2 
  3 $time = date("YmdHis", time());
  4 echo strtotime($time)."\n";
  5 echo sprintf("%04d/%02d/%02d %02d:%02d:%02d",
  6         substr($time, 0, 4), substr($time, 4, 2),
  7         substr($time, 6, 2),
  8         substr($time, 8, 2), substr($time, 10, 2),
  9         substr($time, 12, 2)
 10        )."\n";
 11 
 12 ?>

雑感

どうでもいいけど、

"Y/m/d H:i:s"

って、

ヤマダ電機! HIS!

って読めるよね。
覚えやすいですね。