次のコードの出力1970-01-01
は間違っています。
<?php
$dob='17 Jan 1900';
$datetime = strtotime($dob);
$dob = date("Y-m-d", $datetime);
echo $dob;
?>
ただし、正常に動作します$dob = '17 Jan 2000';
PHP のバージョンが許可されている場合は、 strtotime の代わりにDateTimeを使用することを検討してください。
$date = DateTime::createFromFormat('d M Y','17 Jan 1900');
echo $date->format('Y-m-d');
>= 5.2 から <= 5.3 までの PHP バージョンでは、単純に DateTime コンストラクターを使用します。
$date = new DateTime('17 Jan 1900');
echo $date->format('Y-m-d');
タイムスタンプの有効な範囲は通常、1901 年 12 月 13 日金曜日 20:45:54 GMT から 2038 年 1 月 19 日火曜日 03:14:07 GMT までです。(これらは、32 ビット符号付き整数の最小値と最大値に対応する日付です)。ただし、PHP 5.1.0 より前は、一部のシステム (Windows など) では、この範囲が 01-01-1970 から 19-01-2038 に制限されていました。
ただし、PHP のDateTIMEクラスを使用できます。