strtotime() を使用して 1970 年より前の日付を操作する
問題:
日付を yyyy-mm-dd 形式で保存する MySQL データベースのテキスト列。 PHP コードは strtotime() を使用して日付を変換しますが、1970 年 1 月 1 日以降の値しか解析しないことがわかりました。日付の多くはこの制限より前にあるため、データベース構造を変更せずに回避策はないものかと考えています。
解決策:
公式 PHP ドキュメントでは、日付範囲の制限について強調しています。 strtotime():
Fri, 13 Dec 1901 20:45:54 GMT to Tue, 19 Jan 2038 03:14:07 GMT
オプション 1: PHP バージョンとオペレーティング システムをアップグレードする
可能であれば、PHP バージョン 5.1.0 以上にアップグレードします。拡張された日付範囲をサポートするプラットフォーム上で。
オプション 2: 使用するPHP の DateTime オブジェクト
strtotime() の範囲外の日付には DateTime オブジェクトを使用することを検討してください。これらにより、柔軟性が向上します。
手続き型アプローチ:
$date = date_create($row['value']); if (!$date) { $e = date_get_last_errors(); foreach ($e['errors'] as $error) { echo "$error\n"; } exit(1); } echo date_format($date, "F j, Y");
OOP アプローチ:
try { $date = new DateTime($row['value']); } catch (Exception $e) { echo $e->getMessage(); exit(1); } echo $date->format("F j, Y");
以上が`strtotime()` を使用する場合、PHP で 1970 年より前の日付を処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。