2013-10-02 4 views
0

У меня есть даты, хранящиеся в базе данных MySQL, как так: 2012-02-10Использование PHP, чтобы изменить формат даты MySQL

Когда я выводить их с помощью PHP, есть функция, которую я могу использовать этот выход будет это как так 10/02/2012

Ive пытался:

$theDate = date_format($row['date'], 'd/m/Y'); 
echo $theDate; 

, но это не похоже на работу. Любая помощь может быть изложена.

PHP Version 5.3.3

ответ

1

старый путь (не ООП), чтобы сделать это,

$t = strtotime('2012-02-10'); 
echo date('d/m/Y', $t); 

Функции для проверки: strtotime, date

+0

Как тег 'old way' ;-) –

3

Вы должны использовать date_create() перед использованием date_format(). Это связано с тем, что date_format() ожидает в качестве первого параметра DateTime.

$date = date_create($row['date']); 
echo date_format($date, 'd/m/Y'); 

Другой способ сделать то же самое:

$dt = new DateTime('2012-02-10'); 
echo $dt->format('d/m/Y'); 

Для пользователей PHP 5.4, там может быть упрощена:

echo (new DateTime('2012-02-10'))->format('d/m/Y'); 

редактировать

Для комментировать альтернативные решения, их можно упростить чтобы:

echo date('d/m/Y', strtotime($row['date'])); 

Просто имейте в виду, что они делают не счет на летнее время или часовых поясов, как DateTime делает.

+0

Доступ к члену класса при создании экземпляра был добавлен в версии 5.4, а не 5.5. –

+0

Моя ошибка. Спасибо, что указали это. –

1

Вот очень простой способ сделать это

<?php 
    $theDate = $row['date']; 
    echo date("m/d/Y", strtotime($theDate)); 
?> 
0

Здесь приведены несколько примеров:

$input = '2012-02-10'; 

// datetime (object oriented style) 
$dt = new DateTime($input); 
echo $dt->format('d/m/Y') . "\n"; 

// datetime (procedural style) 
$dt = date_create($input); 
echo date_format($dt, 'd/m/Y') . "\n"; 

// strtotime 
$m = strtotime($input); 
echo date('d/m/Y', $m) . "\n"; 

// substr 
echo substr($input,8,2) . "/" . substr($input,5,2) . "/" . substr($input,0,4) . "\n"; 

// explode 
$m = explode('-', $input); 
echo "$m[2]/$m[1]/$m[0]" . "\n"; 

// preg_match 
preg_match('~^(\d+)-(\d+)-(\d+)$~', $input, $m); 
echo "$m[3]/$m[2]/$m[1]" . "\n"; 

// sscanf 
$m = sscanf($input, '%d-%d-%d'); 
echo "$m[2]/$m[1]/$m[0]" . "\n"; 

p.s. я пропустил какой-нибудь? ;)

Смежные вопросы