PHP 怎么计算从某一天到某一天一共的天数然后增加?

就比如说 9月15号 9月16号 9月17号,知道从哪天开始和到哪天结束。怎么算出中间的日期。

阅读 4.7k
5 个回答

既然知道开始和结束时间,那么用结束时间戳减去开始时间戳的差值除以86400就是间隔天数

Carbon比较方便
不过PHP默认的就有这个功能

$start = new DateTime('2016-09-15');
$end =  new DateTime('2016-09-17');
$inteval = new DateInteval('P1D');
$period = new DatePeriod($start, $end, $inteval);
foreach ($period as $date) {

}

如果是获取中间的日期,我觉得楼上 南小鸟 的代码不够简洁,如下

$start = new DateTime('2016-09-15');
$end =  new DateTime('2016-09-17');

for ($start;$start<=$end;$start->modify('+1 day')) {
   echo $start->format('Y-m-d')."<br/>";
}

推荐我用过的最好的PHP时间处理扩展: Carbon,基本上所有的关于时间的计算都能搞定


$start = '2016-09-15';
$end = '2016-09-17';

$start = strtotime($start);
$end = strtotime($end);

$days = ($end - $start) / 3600 / 24;

for ($i = 0; $i <= $days; $i++) {
    echo date('Y-m-d', $start + 3600 * 24 * $i) . "<br>";
}

2016-09-15
2016-09-16
2016-09-17
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题