2015-09-30 5 views
0

Мой код как следующее:DateTime возвращает неправильный год

<?php 
$newDate = new DateTime('2012'); 
echo $newDate->format('Y'); 

Почему $newDate->format('Y') возвращается 2015 (текущий год), а не 2012?

+0

Как DateTime должен понимать, что число 2012 является годом ? Просто бросать произвольные значения в конструктор DateTime не будет многого ... подумайте об использовании [DateTime :: createFromFormat()] (http://www.php.net/manual/en/datetime.createfromformat.php), чтобы сообщить DateTime, что значение, которое вы передаете, - год - [demo] (https://3v4l.org/DUXVM) –

ответ

1

Потому что 2012 не является допустимой строкой даты. По умолчанию дата и время, установленные в объект будет ток, который 2015. Вы можете намекнуть, что формат, который вы собираетесь использовать с DateTime::createFromFormat

$date = DateTime::createFromFormat('Y', '2012'); 
echo $date->format('Y'); 
Смежные вопросы