2012-05-29

PHP求天数常犯的错误

Views: 17422 | Add Comments

按N天分隔时间, 求出每一个时间段的开始和结束. 例如按7天分隔里头, 求当前时间所处的区间的开始和结束. 要注意时区!

注意, 不要简单地对时间戳取模, 而是要对时间戳与开始时间(1970-01-01)的距离进行取模.

<?
$step = 7;
$zerotime = strtotime('1970-01-01'); // 不一定是0!

$span = ($time - $zerotime) % ($step * 86400);
$stime = $time - $span;
$etime = $stime + ($step * 86400) - 1;

$sdate = date("Y-m-d H:i:s", $stime);
$edate = date("Y-m-d H:i:s", $etime);
?>

注意: Asia/Chongqing 时区, php 5.2.14

strtotime('1980-5-1 01:00:00') - strtotime('1980-5-1 00:00:00'); // 输出 0!

Related posts:

  1. PHP 获取周一,上个月的正确做法
  2. WordPress分页代码
  3. 史上最强大的PHP MySQL操作类
  4. Cpy是如何打败Python的
Posted by ideawu at 2012-05-29 16:03:05

Leave a Comment