作者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
1F:推 mydoc:了解,谢谢了 08/11 11:15
2F:推 mydoc:这个方法好像没办法处理小於一天耶...不过我透过这想到把 08/11 11:58
3F:→ mydoc:$time1 = strtotime(date('Y-m-d 00:00:00))来做时间截记... 08/11 11:59
4F:→ mydoc:$time 2 = strtotime(某一date)相减 08/11 12:00
5F:→ mydoc:$time = ($time1 - $time2)/86400 08/11 12:00
6F:→ mydoc:小於0是今天大於0小於1是昨天 08/11 12:01
7F:→ mydoc:不知有没有想错? 08/11 12:01
8F:→ noxhsu:DateTime::diff 或 date_diff? 我是习惯直接操做资料库处理 08/11 15:34
9F:→ noxhsu:像是 TIMESTAMPDIFF(DAY, date1, date2)这样 08/11 15:35
10F:推 cwlin0416:要看你strtotime里的时有没有时分秒,如果$time1是今天 09/22 13:09
11F:→ cwlin0416:的确如你所说 09/22 13:10