2

次のコードの出力1970-01-01は間違っています。

<?php
$dob='17 Jan 1900';
$datetime = strtotime($dob);
$dob = date("Y-m-d", $datetime);
echo $dob;
?>

ただし、正常に動作します$dob = '17 Jan 2000';

4

2 に答える 2

9

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');
于 2012-04-06T10:01:49.157 に答える
5

タイムスタンプの有効な範囲は通常、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クラスを使用できます。

于 2012-04-06T09:57:36.007 に答える