Функция форматирования даты - настройка вывода - PullRequest
0 голосов
/ 25 октября 2019

Я новичок в PHP и пытаюсь получить дату из моей базы данных и отформатировать ее из этого формата: гггг-мм-дд чч: мм: сс в этот формат: дд-мм-гггг чч: мм: сс. Моей первой мыслью было преобразовать формат перед сохранением на сервере, но я прочитал, что это плохая практика, поэтому я пытаюсь сделать это при выводе данных.

Дело в том, что это не такработает, когда я использую функцию Format, она меняет формат, но неправильно.

В этом примере я использую строку формата 'MM / dd / yyyy', но я уже пробовал использовать другие форматы ивывод всегда один и тот же.

Столбец таблицы представлен в формате datetime, но я экспериментировал с форматами text и varchar, в первом случае вывод такой же, как и в формате datetime, а во втором случаеЯ просто получаю первые четыре числа.

Еще одна вещь, я использую PDO.

Это мой запрос:

   public function funcaoTesteGetValues() {

        $query = "SELECT teste_data,FORMAT(teste_data,'MM/dd/yyyy') AS 'nova_data' FROM teste";

        $stmt = $this->conexao->prepare($query);  

        $stmt->execute();

        return $stmt->fetchAll(\PDO::FETCH_OBJ);

    }

Вот вывод:

[teste_data] => 2015-12-04 04:04:00 => формат базы данных (дата-время)

[nova_data] => 20 151 204 040 400 => форматированный вывод

Что янужно:

04-12-2015 04: 04: 00 enter image description here

1 Ответ

3 голосов
/ 25 октября 2019

FORMAT() - для чисел, округленных до определенного количества десятичных знаков. Вы хотите DATE_FORMAT() с правильными идентификаторами формата

DATE_FORMAT(teste_data,'%m/%d/%Y') AS 'nova_data'

Примечание Это только если ваш сервер базы данных MySQL.

...