Re: [請益] 日期相減

看板PHP作者 ( )時間12年前 (2013/08/11 10:52), 編輯推噓3(308)
留言11則, 3人參與, 最新討論串3/3 (看更多)
※ 引述《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

08/11 11:15, , 1F
了解,謝謝了
08/11 11:15, 1F

08/11 11:58, , 2F
這個方法好像沒辦法處理小於一天耶...不過我透過這想到把
08/11 11:58, 2F

08/11 11:59, , 3F
$time1 = strtotime(date('Y-m-d 00:00:00))來做時間截記...
08/11 11:59, 3F

08/11 12:00, , 4F
$time 2 = strtotime(某一date)相減
08/11 12:00, 4F

08/11 12:00, , 5F
$time = ($time1 - $time2)/86400
08/11 12:00, 5F

08/11 12:01, , 6F
小於0是今天大於0小於1是昨天
08/11 12:01, 6F

08/11 12:01, , 7F
不知有沒有想錯?
08/11 12:01, 7F

08/11 15:34, , 8F
DateTime::diff 或 date_diff? 我是習慣直接操做資料庫處理
08/11 15:34, 8F

08/11 15:35, , 9F
像是 TIMESTAMPDIFF(DAY, date1, date2)這樣
08/11 15:35, 9F

09/22 13:09, , 10F
要看你strtotime裡的時有沒有時分秒,如果$time1是今天
09/22 13:09, 10F

09/22 13:10, , 11F
的確如你所說
09/22 13:10, 11F
文章代碼(AID): #1I1lo0TS (PHP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
0
8
完整討論串 (本文為第 3 之 3 篇):
3
11
0
8
2
11
文章代碼(AID): #1I1lo0TS (PHP)