>> $start_dt = new DateTime()
DateTime::__set_state(array(
'date' => '2012-04-11 08:34:01',
'timezone_type' => 3,
'timezone' => 'America/Los_Angeles',
))
>> $end_dt = new DateTime()
DateTime::__set_state(array(
'date' => '2012-04-11 08:34:06',
'timezone_type' => 3,
'timezone' => 'America/Los_Angeles',
))
>> $start_dt->setTimestamp(strtotime('31-Jan-2012'))
DateTime::__set_state(array(
'date' => '2012-01-31 00:00:00',
'timezone_type' => 3,
'timezone' => 'America/Los_Angeles',
))
>> $end_dt->setTimestamp(strtotime('1-Mar-2012'))
DateTime::__set_state(array(
'date' => '2012-03-01 00:00:00',
'timezone_type' => 3,
'timezone' => 'America/Los_Angeles',
))
>> $interval = $start_dt->diff($end_dt)
DateInterval::__set_state(array(
'y' => 0,
'm' => 0,
'd' => 30,
'h' => 0,
'i' => 0,
's' => 0,
'invert' => 0,
'days' => 30,
))
>> $interval->format('%mm %dd')
'0m 30d'
즉 31-Jan-2012
에서 1-Mar-2012
까지 한 달 이내에 수익이 발생합니다. 출력이 1 개월, 1 일이 될 것으로 기대합니다. 2 월의 날짜 수는 중요하지 않습니다. 이것이 시간 라이브러리를 사용하는 요점입니다. 이러한 것들을 처리해야합니다. WolframAlpha agrees.이것은 PHP의 DateTime : bug에서 버그입니까?
PHP에 버그를 기록해야합니까? 예상대로 작동하도록 해킹/수정/해결 방법이 있습니까?
+1이 정확한 답이기 때문에 - 나는 과거에 이런 행동을 보았고,별로 보잘것없는 문서 때문에 이것에 대해 알지 못했습니다. 빛을 비추는 것에 감사드립니다. :) – Jon