2011-01-30 8 views
2

このシステムでは、何十年も日付をソートしています。私は時間を作っているし、それが1900年以下になるまでうまくいっている。すべてが12月24,1964の日付の日付を返します。なぜこれが起こっているのだろうと誰かが私に可能性のあるsoltuion?PHP mktime()for dates pre 1900

そして、このためのコード:

//$decades is a string ex: '1950-1960' 

$decade_array=explode('-',$decades); 

$date_active=date("M-d-Y", mktime(0, 0, 0, 1,1 , trim($decade_array[0]))); 
$date_inactive=date("M-d-Y", mktime(0, 0, 0, 1, 1, trim($decade_array[1]))); 

echo $date_active.' '.$date_inactive; 

答えて

2

代替手続き機能

date_format(date_create('1234-01-01'), 'M-d-Y'); 
+1

([ 'date_create(...)'](http://php.net/manual /en/datetime.construct.php)は、['new DateTime(...)'](http://php.net/manual/en/datetime.construct.php)のエイリアスで、 'DateTime'オブジェクトを返します'date_format'は' DateTime-> format() 'のエイリアスで、' DateTime'オブジェクトをパラメータとして取ります)。 – arnaud576875

6

DateTimeクラスで試してみてください:

$date = new DateTime("1234-01-01"); 
echo $date->format("M-d-Y"); // outputs Jan-01-1234 

DateTimeクラスは、PHP 5.2以降で使用可能です。

あなたはPHP 5.3持っている場合は、DateTime::createFromFormatを使用します。

$date = DateTime::createFromFormat('Y-m-d', "1234-01-01"); 
echo $date->format("M-d-Y"); 
関連する問題