Измените формат даты (в DB или произведите) к dd/mm/yyyy - MySQL PHP

MySQL хранит дату в моей базе данных (по умолчанию) как 'YYYY-MM-DD', типом поля для моей даты является 'ДАТА' (мне не нужно никакое устройство хранения данных времени).. Существует ли простой способ изменить его по умолчанию на DD/MM/YYYY?

Я называю различные даты в 2 различных таблицах, и не где в любом моем коде делают у меня есть что-либо напоминающее переменную даты или что-либо! Надо надеяться, это - прямое изменение?

14
задан John Conde 27 September 2013 в 18:07
поделиться

4 ответа

В PHP вы можете :

  • Преобразовать дату в метку времени, используя strtotime
  • Отформатировать ее, используя date

Примерно так, я бы сказал :

$timestamp = strtotime($date_from_db);
echo date('d/m/Y', $timestamp);

Но это будет работать только для дат между 1970 и 2038 годами, так как метки времени хранятся как 32-битные целые числа, считая от 1970-01-01.


В MySQL, я полагаю, функция date_format сделает это.
Например :

mysql> select date_format(curdate(), '%d/%m/%Y');
+------------------------------------+
| date_format(curdate(), '%d/%m/%Y') |
+------------------------------------+
| 19/03/2010                         |
+------------------------------------+
1 row in set (0.03 sec)


И, для полноты картины, другим решением в PHP, которое не страдает от ограничения 1970-2038, было бы использование класса DateTime, и, особенно :

  • DateTime::__construct для разбора даты, возвращаемой DB
  • DateTime::format для форматирования даты в любой формат, который вы хотите.

Например, эта часть кода :

$date = new DateTime('2010-03-19');
echo $date->format('d/m/Y');

даст вам такой результат:

19/03/2010
22
ответ дан 1 December 2019 в 08:52
поделиться

Вы можете отображать дату в любом формате на ваших страницах, в mysql я действительно не знаю, в php вы можете использовать эту функцию: date (строка $ format [, int $ timestamp]). Итак, вы можете сделать это:

echo date ("d / m / Y", strtotime ($ your_date));

Вы можете найти полное описание здесь: http://php.net/manual/ en / function.date.php

2
ответ дан 1 December 2019 в 08:52
поделиться

Получив его из БД, используйте $ time = strtotime ($ value) , чтобы преобразовать его в метку времени в PHP. Затем используйте date ("d / m / Y", $ time) , чтобы получить его в этом формате.

1
ответ дан 1 December 2019 в 08:52
поделиться

Просто используйте встроенную функцию Mysql DATE_FORMAT()

SELECT DATE_FORMAT(some_date_field, "Y/m/d");
4
ответ дан 1 December 2019 в 08:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: