function getMonthExceptions(){
$countTimeline = $_POST['hiddenCountTimeline'];
If($_POST['timeline_0Start']!=""){
$exceptionList = array();
for($d=0; $d<=2; $d++){
If($countTimeline<=$d){
$startTimeline = $_POST['timeline_' . $d . 'Start'];
$endTimeline = $_POST['timeline_' . $d . 'End'];
$begin = new DateTime($startTimeline);
$endUnmodified = new DateTime($endTimeline);
$end = $endUnmodified->modify( '+1 day' );
$daterange = new DatePeriod($begin, new DateInterval('P1D'), $end);
foreach($daterange as $date){
array_push($exceptionList, $date->format("Y-m-d"));
}
}
}
return($exceptionList);
}
}
我使用此函数从输入字段中获取一些日期并将它们保存到数组中。
我的问题:
如果我使用$startTimeline
格式化new DateTime()
并打印$begin
,我会得到此结果,即给定日期(2017-02-01)和今天日期两次(2017- 02-16):
DateTime Object ( [date] => 2017-02-01 00:00:00.000000 [timezone_type] => 3 [timezone] => Europe/Berlin ) DateTime Object ( [date] => 2017-02-16 12:45:32.000000 [timezone_type] => 3 [timezone] => Europe/Berlin ) DateTime Object ( [date] => 2017-02-16 12:45:32.000000 [timezone_type] => 3 [timezone] => Europe/Berlin )
但它应该是这样的:
DateTime Object ( [date] => 2017-02-01 00:00:00.000000 [timezone_type] => 3 [timezone] => Europe/Berlin )
有什么想法吗?
修改
通过删除If($countTimeline<=$d){
并将$countTimeline
放入上面的for循环来解决此问题。