我试图设置2个变量之间的时间,但是当我检查它时,它会复制2次变化。例如,我选择1:00和23:00,两个日期仅显示23:00。即使我每次都有不同的变量,我也无法理解为什么它会显示出来。我需要显示不同的日期。
输入日期:
01:30 and 21:00
我的代码:
$date = $_POST['datepicker'];
$time1 = $_POST['timepicker'];
$time2 = $_POST['timepicker2'];
$time1_array = explode(":",$time1);
$time2_array = explode(":",$time2);
$date = $_POST['datepicker'];
$date = new DateTime($date);
$date2 = $date;
$datefinal1 = date_time_set($date, $time1_array[0], $time1_array[1], 00);
$datefinal2 = date_time_set($date2, $time2_array[0], $time2_array[1], 59);
$result = $datefinal1->format('Y-m-d H:i:s');
$result2 = $datefinal2->format('Y-m-d H:i:s');
print_r($datefinal1);
我得到的示例输出:
DateTime对象([date] => 2015-03-17 21:00:59 [timezone_type] => 3 [timezone] =>欧洲/柏林)
即使我应该获得$ datefinal2的价值。
答案 0 :(得分:3)
通过引用复制对象,而不是值。如果将一个对象分配给一个新变量,则它们都指向同一个对象,因此更改一个对象会改变另一个对象要复制对象,您需要使用clone
。
$date2 = $date;
应该是:
$date2 = clone $date;