2015-12-22 3 views
0

Мой хост обновлен с PHP 5.2 до PHP 5.3, и мой код даты больше не возвращает год, такой как 2015, но вместо знака минус -1.PHP/mysql: Получить правильный год в php 5.3

Wednesday November 30, 2015 

стал

Wednesday November 30, -1 

Это, очевидно, потому, что команда date изменилась. Несмотря на множество вариантов, я не могу заставить его правильно отображать

Вот мой код, который раньше работал, и теперь дает -1 для года.

function fulldatetime($datetime) { 
$fullDate = strtotime($datetime); 
$fullDate = date("l F jS, o, g:i A",$fullDate); 
return $fullDate; 
} 

где $ DateTime имеет вид: 2015-12-28 23:00:00

Может кто-нибудь объяснить мне правильный код, чтобы получить год, чтобы отобразить право.

Заранее благодарим за помощь в решении этой неприятной проблемы.

+1

Работает на меня https://3v4l.org/UTdBc –

+0

Попытался на php _5.4.45_, а результат: 'Понедельник 28 декабря 2015 года, 11:00 PM'. Убедитесь, что вы действительно используете хорошо отформатированный ввод в параметре вашей функции 'fulldatetime'. Я также хотел бы добавить, что сегодня лучше использовать библиотеку для обработки даты типа '[DateTime()] (http://php.net/manual/en/class.datetime.php)'. –

+0

Каков результат '$ fullDate = strtotime ($ datetime);'? –

ответ

0

Вот альтернатива, используя не столь новую дату библиотеки ООП DateTime(). Вот функция:

<?php 
    function fulldatetime($datetime) 
    { 
     return (new DateTime($datetime))->format("l M d, Y");  
    } 

    printf(fulldatetime("2015-12-28 23:00:00")); 
?> 

Вы можете попробовать его с помощью Viper-7, который является интернет-сайт для компиляции кода PHP.

Описание

Формат:

  • л: день недели в полном письме
  • M: номер месяца в полном письме
  • d: номер дня месяца
  • Y: год в 4-значном формате
+0

Вопрос возникает, когда дата 0000-00-00 00:00:00. Думаю, я мог бы исправить это, никогда не устанавливая дату на это значение, но он работал нормально. – user1904273