我需要這樣一個日期間制定的月數之間計算的月數:PHP的日期與當前日期
$inputDate = '09/08/2016';
是在MM/DD/YYYY格式輸入,和當前的日期,例如:
$today = date("m/d/Y");
我一直在尋找的date_diff但似乎無法在這裏獲取語法和這裏得到任何幫助。
我需要這樣一個日期間制定的月數之間計算的月數:PHP的日期與當前日期
$inputDate = '09/08/2016';
是在MM/DD/YYYY格式輸入,和當前的日期,例如:
$today = date("m/d/Y");
我一直在尋找的date_diff但似乎無法在這裏獲取語法和這裏得到任何幫助。
$datetime1 = new DateTime();
$datetime2 = new DateTime('09/08/2016');
$interval = $datetime1->diff($datetime2);
$months = $interval->format('%m months'); # you can also use %a days %h hours %i minutes %s seconds
echo $months;
# 8 months
# optimally you can use:
# echo $datetime1->diff($datetime2)->y*12;
# or
# echo $interval->m
更新基礎上的意見:
$datetime1 = new DateTime();
$datetime2 = new DateTime('09/08/2015');
$interval = $datetime1->diff($datetime2);
echo (($interval->format('%y') * 12) + $interval->format('%m')) . " full months difference";
注:
一個DateInterval Object
的樣子:
DateInterval Object
(
[y] => 3
[m] => 5
[d] => 15
[h] => 0
[i] => 0
[s] => 0
[invert] => 0
[days] => 1264
)
這就是爲什麼我們要乘的years * 12
數量,以獲得在幾個月的差別添加months
。奇怪,但這是它的工作原理...
我剛剛測試了'05/13/2015'的日期,並且它返回0個月 - 任何想法爲什麼會發生這種情況? – user982124
我不知道爲什麼它會返回0個月,儘管如此,您還可以使用'$ datetime1-> diff($ datetime2) - > y * 12;' –
在幾個月內獲得差異。 $ datetime2到2015('$ datetime2 = new DateTime('09/08/2015');')它仍然會返回8個月。 – user982124
@PedroLobito我認爲他們已經在這裏足夠長的時間知道該怎麼做,並給出了他們的代表得分。這也只是9分鐘。因爲他們發佈。 –
@ Fred-ii-沒有注意到代表!在自動模式下... –
@ Fred-ii-請問您可以看看我的回答的評論嗎?爲什麼我無法正確地獲得月份? –