PHP日期时间和间隔意外的行为
这里是我的代码(使用laravel)PHP日期时间和间隔意外的行为
$start = '05-01-2016';
$end = '05-03-2016';
$start_date = new Carbon;
$end_date = new Carbon;
$format = 'm-d-Y';
$begin = Carbon::createFromFormat($format, $start);
$begin->setTime(0, 0, 0);
$end = Carbon::createFromFormat($format, $end);
$end->setTime(59, 59, 59);
//dd($begin,$end);
$interval = new \DateInterval('P1D');
$dateRange = new \DatePeriod($begin, $interval, $end);
foreach ($dateRange as $date) {
$start_time = $start_date->setDateTime($date->format("Y"), $date->format("m"), $date->format("d"), 0, 0, 0)->toDateTimeString();
$end_time =$end_date->setDateTime($date->format("Y"), $date->format("m"), $date->format("d"), 23, 59, 59)->toDateTimeString();
var_dump($start_time);
//var_dump($end_time);
}
预计产出将是(ATLEAST我)
05-01-2016
05-02-2016
它实际上给了我
05-01-2016
05-02-2016
05-03-2016
05-04-2016
05-05-2016
我无法理解它...任何帮助表示赞赏
你设置59小时:) - 这是两天以上。现在,你的最终日期时间是Thu, 05 May 2016 11:59:59
$end->setTime(59, 59, 59);
设置23小时,将工作
$end->setTime(23, 59, 59);
该死的该死的该死的我.....我不会相信那是我......谢谢兄弟......我在墙上撞到了我的脑袋...... –
这样的错误确实很难找到。需要一个新的看看:) – splash58
你真的是正确的兄弟...它花了至少一个小时......我甚至开始怀疑,可能是它的一个错误......但错误在我的眼睛和代码...不是在DateTime或间隔:(无论如何,我真的欠这 –
是一个错误?否则,有人会回复我,直到现在 –
谁投了票,值得一个solute,因为我值得这个..我花了一个小时,最后由下面的梦幻般的人的帮助弄清楚.. –