Я хочу разобрать дату 1938
1938+02:00
с помощью date()
& strtotime()
,
Мой код:
echo date("Y", strtotime("1938+02:00"));
дает мне в результате «2014» ..
Что я делаю неправильно?
Для чего-то вроде этого просто получите первые четыре символа строки. Не нужно работать с датами и тому подобным:
echo substr('1938+02:00', 0, 4);
Но если вы настаиваете на использовании функции даты, вам нужно использовать DateTime::createFromFormat()
поскольку эта строка даты не является стандартным форматом.
$date = DateTime::createFromFormat('YP', '1938+02:00');
echo $date->format('Y');
date("Y");
только вернуть год. Вот что Y
делает.
Смотрите страницу руководства для Дата для других вариантов.
РЕДАКТИРОВАТЬ
Еще одна вещь, которую следует учитывать, это то, что временные метки берут свое начало только с 1970 года. Вот что такое временная метка (количество секунд с 1970 года).
Итак, это даст вам отрицательное значение для отметки времени.
Ваша строка даты не в приемлемом формате. Вот список приемлемых форматов для strtotime