2013-10-02 53 views
0

我存儲在MySQL數據庫中,像這樣的日期:2012-02-10使用PHP來改變MySQL的日期格式

當我使用PHP它們的輸出,有我可以使用將輸出功能它像這樣10/02/2012

我用盡:

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

,但它似乎沒有工作。任何幫助appretiated。

PHP版本5.3.3

回答

1

舊的方式(非OOP)做到這一點,

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

功能檢查:strtotimedate

+0

像'老路'標籤;-) –

3

您需要使用date_format()前使用date_create()。這是因爲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.我錯過了嗎? ;)