作者Bambe ( )
看板PHP
標題Re: [請益] 日期相減
時間Sun Aug 11 10:52:45 2013
※ 引述《mydoc (mydoc)》之銘言:
: 小的查到可以用strtotime()來做日期相減求得秒數,
: 但我想要的是如2013-8-12 00:00:00減去2013-8-11 23:59:59
: 不應該算1秒而是算成1天,因為就一般認知是這作為一個分水嶺分辨昨天跟今天的差別
: 那我可以透過PHP或MYsql辦到嗎?
$time1 = strtotime('2013-08-12 00:00:00');
$time2 = strtotime('2013-08-11 23:59:59');
echo date('z', $time1 - $time2);
根據
http://www.php.net/manual/en/function.date.php
z 是顯示一年當中的第 n 天(從 0 開始)
也就是說你的時間範圍超過一年就爆炸了(值最多就 365)
所以還得再多加判斷超過一年的處理方式
時間都在一年內就算了,超過一年也太不 make sense...
不如就土法煉剛...
$time = ($time1 - $time2) / 86400;
這樣就沒有超過一年的限制了...
還是其實真的有內建 function 可以這樣算我沒發現@@?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.136.113.39
推 mydoc:了解,謝謝了 08/11 11:15
推 mydoc:這個方法好像沒辦法處理小於一天耶...不過我透過這想到把 08/11 11:58
→ mydoc:$time1 = strtotime(date('Y-m-d 00:00:00))來做時間截記... 08/11 11:59
→ mydoc:$time 2 = strtotime(某一date)相減 08/11 12:00
→ mydoc:$time = ($time1 - $time2)/86400 08/11 12:00
→ mydoc:小於0是今天大於0小於1是昨天 08/11 12:01
→ mydoc:不知有沒有想錯? 08/11 12:01
→ noxhsu:DateTime::diff 或 date_diff? 我是習慣直接操做資料庫處理 08/11 15:34
→ noxhsu:像是 TIMESTAMPDIFF(DAY, date1, date2)這樣 08/11 15:35
推 cwlin0416:要看你strtotime裡的時有沒有時分秒,如果$time1是今天 09/22 13:09
→ cwlin0416:的確如你所說 09/22 13:10