it-roy-ru.com

Изменить формат даты (в БД или на выходе) на дд/мм/гггг - PHP MySQL

MySQL хранит дату в моей базе данных (по умолчанию) как «ГГГГ-ММ-ДД». Тип поля для моей даты - «ДАТА» (мне не нужно хранить время). Есть ли простой способ изменить его по умолчанию? в ДД/ММ/ГГГГ?

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

11
Jess

В PHP вы могли бы:

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

Немного так, я бы сказал:

$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 для анализа даты, возвращаемой БД
  • DateTime::format для форматирования даты в любой формат, который вы хотите.

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

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

получит вам этот вывод:

19/03/2010
18
Pascal MARTIN

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

SELECT DATE_FORMAT(some_date_field, "Y/m/d");
4
John Conde

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

дата эха ("d/m/Y", strtotime ($ your_date));

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

2
D.Martin

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

1
St. John Johnson

Если бы вы использовали какой-то фреймворк, такой как Zend, это было бы очень просто, потому что у вас есть множество классов для обработки баз данных и форматирования даты. Тогда вы всегда будете видеть вывод в виде бразильского формата даты. Так же, как Delphi TDateField использует формат даты Windows на текущем компьютере, Zend будет искать вашу собственную конфигурацию.

1

я использую этот скрипт и поместил его в верхнюю строку.

$(function(){
    var pickerOpts = {
        dateFormat: "yy-mm-dd"
    };  
    $("#datepicker").datepicker(pickerOpts);
});

и этот в твоей форме.

<input id=**"datepicker" type="date"** name="Start"  size="9" value="<?php  

echo $Start;

?>" />

Он будет отображаться как d/m/y на вашей странице, но в вашей базе данных y/m/d.

1
Nurfaezah Hanis

Эта функция MySQL вернет правильный формат в результате

SELECT DATE_FORMAT(date_field, "%M %d %Y");
0
Nandhini

$dtShowDate = $_POST['dtShowDate']; $date =explode('-', $dtShowDate)0; $showdate = $date[2]."-".$date[0]."-".$date[1];

Установите дату в соответствии с вашими потребностями

0
Keval Mehta