MySQLで日付情報を持つ方法のひとつとして、データ型をdatetimeにする方法があります。これにすると、"2008-10-08 12:00:00"のような形で保存されるので、単にタイムスタンプをそのまま保存するより見やすいわけで、自分は好んで使っています。注意しなければならないのがdatetime型はnull値が"0000-00-00 00:00:00"となる点です。
意外とこの仕様がPHPで扱う上でくせ者です。datetime型はPHPでは文字列型として扱われるので、汎用性を持たせるにはstrtotime()などを使って、いったんタイムスタンプに変換する必要があります。
<?php
$timeStamp = strtotime($datetime);
?>
ところが、このstrtotime()の挙動がPHPのバージョンによって微妙に異なるようです。
<?php
var_dump(strtotime('0000-00-00 00:00:00'));
var_dump(date('Y-m-d H:i:s', strtotime('0000-00-00 00:00:00')));
?>
上のコードを異なるバージョンのPHPで試してみました。
5.1.6の実行結果: int(943887600) string(19) "1999-11-30 00:00:00" 5.2.6の実行結果: bool(false) string(19) "1970-01-01 09:00:00"
結果はご覧のとおりです。この手の仕様はちょっと困りものです。とりあえずの対策は、文字列が'0000-00-00 00:00:00'のとき分岐するような処理を追加するくらいでしょうか。