phpで日付をタイムスタンプに変換するには、「strtotime」を使うのですが、これは1970年1月1日 00:00:00 UTCを基準にしているため、それ以前の日付を指定しても値は返って来ません。
echo strtotime('1990/1/1');
// => 631152000
echo strtotime('1970/1/1');
// => 0
echo strtotime('1192/1/1');
// => (FALSE)
で、こういう時は、「DateTime」を使えとのこと。DateTimeであれば、紀元前の年代も含めてタイムスタンプを取得することが出来ます。
但し、紀元前(マイナス符号)を用いる際の入力方法に決まりがあるので要注意。
日付は「-(ハイフン)」で区切り、「4桁-2桁-2桁」となるように「0」も追記すること。
$time1 = new DateTime('1192/1/1');
echo $time1->format('U');
// => -24551337600
$time2 = new DateTime('-1192/1/1');
echo $time1->format('U');
// => 980990340 (意図しない値)
$time3 = new DateTime('-1192-01-01');
echo $time1->format('U');
// => -99783100800 (こっちが正解)