2017-03-06 37 views
0

我使用一個代碼來尋找,因爲在新的一年有多少天過去了(1月1日)。 我用這個代碼:PHP DATEDIFF日發出

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

現在,如果我用這個代碼,它顯示的天正確數量,

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

但是當我使用不同的格式,它出錯。

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

我認爲這是由於PHP計算2月爲31天長,所以技術上它是31 + 31 + 2天。根據閏年的情況,我希望它將2月計爲28或29天。我想在這裏必須有一些與php.ini相關的東西。什麼和在哪裏改變或有什麼黑客?

+0

上的東西應該'格式()'做'如果「%m個月%d天」'中給出。這'1個月28天1個月29天2天'??你必須手工計算並自己格式化:-) – JustOnUnderMillions

+0

它工作正常: - https://eval.in/748856 –

+0

@Anant我也有'2個月2天',似乎有一些配置到位。忽略我的第一條評論。 :-) – JustOnUnderMillions

回答

0

要用PHP錯誤地報告2個日期之間的差異來調試此問題,我們首先必須檢查幾件事情。

我看到幾個人正在獲得混合的結果,來調試這種嘗試找出你有什麼版本的timezonedb的

<?php 
echo timezone_version_get(); 
?> 

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

的PECL timezonedb網站可以在https://pecl.php.net/package/timezonedb

被發現

檢查,看看你有最先進的最新版本。從另一條路

+1

這解決了我的問題。謝謝。這正是我所期待的。我的upvote沒有顯示,因爲低信譽點。 –

+1

@doing_something_wonderful你可以標記爲答案。 – JustOnUnderMillions

+0

請註冊這個人 –