59を2012年2月29日に変換したいと思います。私はすでに今年が2012年であることを知っています。私は次のコードを試してみます。しかし、それは2012-mar-01を与えます。
$string = '59 2012';
$date1 = date_create_from_format('z Y', $string);
$date_time = date_format($date1, 'Y-m-d');
echo $date_time;
試す:
echo date('Y-m-d', strtotime(date('Y-01-01')) + 59 * 86400);
アップデート:
コードの問題は、z
が から始まっているため0
、 をマイナスする必要があるためです1
。
$date1 = date_create_from_format('z', 59 - 1);
$date_time = date_format($date1, 'Y-m-d');
echo $date_time;
代わりに使用できますstrtotime()
:
echo date('Y-m-d', strtotime('2012-01 +59 day'));