date_time_set问题有2个不同的日期

时间:2014-08-27 02:22:28

标签: php date datetime datetime-format

我试图设置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的价值。

1 个答案:

答案 0 :(得分:3)

通过引用复制对象,而不是值。如果将一个对象分配给一个新变量,则它们都指向同一个对象,因此更改一个对象会改变另一个对象要复制对象,您需要使用clone

$date2 = $date;

应该是:

$date2 = clone $date;