Неверный результат функции даты Php - PullRequest
1 голос
/ 17 декабря 2011

Проблема с функцией даты

выходной: 00:00 утра в воскресенье 17 декабря 2011 года

Задача часы и минуты всегда показывают 00:00, а иногда год также неверен

Input дата ('Y-m-d H: i: s', время ());

Функция

public function perfect_date_format($date) {
    $dated = str_replace(array(" ", ":"), "-", $date);
    list($year, $month, $day, $hour, $minute) = explode("-", $date);
    $niceday = @date("H:ia \o\\n\ l, F jS, Y", mktime($hour, $minute, 0, $month, $day, $year));
    return $niceday;
  }

Ответы [ 2 ]

3 голосов
/ 17 декабря 2011

У вас есть опечатка.Второй аргумент explode() должен быть $dated, а не $date.Если вы сделаете это, время будет отображаться правильно.

<?php
function perfect_date_format($date) {
    $dated = str_replace(array(" ", ":"), "-", $date);
    list($year, $month, $day, $hour, $minute) = explode("-", $dated);
    $niceday = @date("H:ia \o\\n\ l, F jS, Y", mktime($hour, $minute, 0, $month, $day, $year));
    return $niceday;
}

echo perfect_date_format('2011-12-17 03:45:00') . "\n";
?>

Это выводит:

03:45am on Saturday, December 17th, 2011

КСТАТИ: Удалить оператор 10101 * подавления ошибок безопасно. @) в коде выше.Это было просто подавление ошибок или предупреждений, вызванных ошибкой, указанной выше.Теперь, когда ошибка устранена, @ ничего не делает.

1 голос
/ 17 декабря 2011

Очень сложно знать, как исправить код, не зная, что вы передаете perfect_date_format, но я сделаю дикое предположение и предположу, что strtotime понимает, как анализировать ваш код.$date:

public function perfect_date_format($date) {
    $time = strtotime($date);
    return date("H:ia \o\\n\ l, F jS, Y", $time);
}

Если это не сработает, укажите формат передаваемых данных как $date.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...