strtotimeの落とし穴
この関数に「年月日時分秒」を表す14桁の数字を渡すと、誤認識される場合があります。以下はPHP4.4.6で試した結果です。
strtotime関数はGNU Date Input Formats形式に準拠した文字列をタイムスタンプ形式に変えるためのものです。
<?php // 「533746800」になる $tm = strtotime('20070402000000'); // 「19861201000000」と表示される echo date('YmdHis', $tm);
ということで、Smartyの古いバージョン(2.6.10以前)のshared.make_timestamp.phpにあるような使い方をしていると痛い目に遭います。。。というか、古いシステムで日付表示関連の障害が出て分かっただけですが orz
ちなみに、PHP5.2.1では正しく「20070402000000」と表示されます。