Я привык к классу DateTime и получаю неожиданные результаты из приведенного ниже кода:
<?php
$now = date("Y-m-d H:i:s");
echo $now .'</br>';
$newDate = date("Y-m-d H:i:s",strtotime("$now + 1 years"));
$converted = strtotime("$newDate");
$outputDate = new DateTime("@$converted");
var_dump($outputDate);
echo "Output - ". $outputDate->date;
?>
Когда у меня есть var_dump($outputDate)
, я получаю ожидаемый результат (т.е. строка вывода находится в конце):
2015-03-29 23:08:30
object(DateTime)#1 (3) { ["date"]=> string(26) "2016-03-29 21:08:30.000000"
["timezone_type"]=> int(1)
["timezone"]=> string(6) "+00:00" } Output - 2016-03-29 21:08:30.000000
Однако, когда у меня есть точно такой же код и комментарий var_dump($outputDate)
:
<?php
$now = date("Y-m-d H:i:s");
echo $now .'</br>';
$newDate = date("Y-m-d H:i:s",strtotime("$now + 1 years"));
$converted = strtotime("$newDate");
$outputDate = new DateTime("@$converted");
// var_dump($outputDate);
echo "Output - ". $outputDate->date;
?>
Я просто получаю:
2015-03-29 23:14:13
Output -
Я не уверен, почему наличие строки var_dump($outputDate)
позволяет мне выводить дату. Я решил проблему, используя другой подход, но мне любопытно, почему это так. Какие-либо предложения?