- 2007-02-12 (月) 18:42
- PHP
この記事の所要時間: 約 0分39秒
32ビットPCでは数値を扱う限界があります。
PHPで日付を扱う事が多いと思いますが、UNIXタイムスタンプを利用すると数値 の限界に引っかかる事を知っておく必要があります。
エントリではPEAR::Dateが紹介されていますが、ここでは別の方法を。
5.2.0以降になりますが、組み込みクラスのDateTimeクラスならこの問題に対応しています。
<?php $date = new DateTime('2038-1-19 12:14:07'); echo $date->format('Y/m/d H:i:s') . PHP_EOL; $date->modify("+1 day"); echo $date->format('Y/m/d H:i:s') . PHP_EOL; $date->setDate(3000,12,31); echo $date->format('Y/m/d H:i:s') . PHP_EOL; ?>
$ php 2038.php 2038/01/19 12:14:07 2038/01/20 12:14:07 3000/12/31 12:14:07
- Newer: RecursiveDirectoryIteratorで再帰なしでファイル走査
- Older: PHP5.2.1 str_ireplaceでzend_mm_heap corruptedが発生する
トラックバック:0
- このエントリーのトラックバックURL
- /blog/2007/02/php_2038_datetime.html/trackback
- Listed below are links to weblogs that reference
- 2038年問題 from Shin x blog