2017-03-06 1 views
0

나는 새해 (1 월 1 일) 이후 경과 한 일수를 찾기 위해 코드를 사용하고 있습니다. 나는이 코드를 사용 :이 코드를 사용하는 경우, 그것은 일의 오른쪽 숫자,PHP datediff 2 월호

echo $difference->format("%a days"); // 64 days 

을 표시하지만 다른 형식을 사용하는 경우, 그것은 잘못되면, 이제

$newyear = new DateTime("2017-01-01"); // January 1, 2017. 
$today = new DateTime(); // March 6, 2017. 
$difference = $newyear->diff($today); 

합니다.

echo $difference->format("%m months %d days"); // 2months 2 days. 

나는이 PHP는 31 일 긴 2 월을 계산 때문이다 가정, 그래서 기술적으로는 31 + 31 + 2 일입니다. 윤년 조건에 따라 2 월을 28 일 또는 29 일로 계산하기를 원합니다. 나는 이것과 관련된 php.ini에 뭔가가 있어야한다고 생각한다. 무엇을 어디에서 변경하거나 해킹이 있습니까?

+0

다른 방법과의 차이 : "% m months % d days"'이 주어지면'format()'이해야 할 일은 무엇입니까? 이 '1 개월 28 일 1 개월 29 일 2 일'?? – JustOnUnderMillions

+0

잘 작동하고 있습니다. - https://eval.in/748856 –

+0

@Anant 2 달이 지났는데도 설정이 제대로되어있는 것 같습니다. . 내 첫 코멘트를 무시하십시오. :-) – JustOnUnderMillions

답변

0

PHP로 2 개 날짜의 차이를 잘못보고하는이 문제를 디버깅하려면 먼저 몇 가지 사항을 확인해야합니다.

나는 몇 사람이 당신이

<?php 
echo timezone_version_get(); 
?> 

http://php.net/manual/en/function.timezone-version-get.php

PECL의 timezonedb 사이트 https://pecl.php.net/package/timezonedb

에서 찾을 수있는 timezonedb의 버전을 확인하려고 디버깅하는 혼합 결과를 얻고있다 참조

가장 최신 버전인지 확인하십시오.

+1

내 문제를 해결합니다. 고맙습니다. 이것은 내가 찾고 있었던 바로 그 것이다. 내 upvote 낮은 평판 포인트로 인해 표시되지 않습니다. –

+1

@ doing_something_wonderful 답변으로 표시 할 수 있습니다. – JustOnUnderMillions

+0

please up this people –