2017-03-10 101 views
0

我在PHP中減去時間有問題。扣減時間PHP

我的時間是:

$行[ 'EXP'] = 2017年3月31日

和日期( 'YM-d') = 2017年3月10日(今天)

$datetime1 = strtotime($row['exp']); 
$datetime2 = strtotime(date('Y-m-d')); 
$secs = $datetime1 - $datetime2;// == <seconds between the two times> 
$days = $secs/86400; 
echo $days; 

我的結果是:

36520.958333333333

+0

除了以下ID的答案也考慮 「低碳」 如果你的將要配發的處理時間和日期 - HTTP://碳.nesbot.com/docs/ – ATechGuy

+0

@keaner謝謝你,這很有趣! – NicePersonsLiveMore

+0

沒問題,我用它分配,它的工作奇蹟 – ATechGuy

回答

1

改爲使用PHP DateTime類,它內置了函數,如DateTime :: diff,這似乎是您正在尋找的。 DateTime對象也更容易處理。

$today = new DateTime('today'); 
$date = new DateTime("2017-03-31"); 

echo $today->diff($date)->d; // 21 

只需通過你的$row['exp']$date的參數,而不是等你拿

$date = new DateTime($row['exp']); 

雖然,我不能和你有,this live demo輸出「給定的輸入重現您的問題20.958333333333「(這是對的,你只需要ceil()吧)。

Live demo

參考

+0

謝謝,但爲什麼我的代碼不起作用?對我來說這似乎很好... – NicePersonsLiveMore

+0

是的,這個[** demo **](https://3v4l.org/48LZa)顯示了你的代碼的預期結果,所以我想也許你的'$ row [' exp']'不是你認爲的值嗎?我開始着眼於此,就像您迄今爲止提供的代碼和信息一樣。 – Qirel

+0

順便說一句,如果日期恰好是1年後,您的答案將不起作用。 – NicePersonsLiveMore