2011-05-11 141 views

回答

1

您可以通過一個regular expression做到這一點:

$new_str = preg_replace('#(\d+)/(\d+)/(\d+)#', '$3,$2,$1', $str); 
+0

正則表達式太辛苦,但感謝! – snagcheol

1
<? 
function transdate($date) { 
    $dates = explode("/", $date); 
    return $dates[2].",".dates[1].",".dates[0]; 
} 
?> 
1
$date = implode(',', array_reverse(explode('/', '5/1/2011'))); 
+0

哇,非常感謝! – snagcheol

2

您可以使用PHP date功能

在你的情況下,應該這樣做:

$date = '5/1/2011'; 
echo date('Y,j,n', strtotime($date)); 
+1

這是最好的答案,因爲你應該格式化日期對象而不僅僅是替換字符串。 –

+0

但只有當strtotime可以找出日期應該是什麼。嘗試'1/2/3',看看你的工作是否正常。 strtotime很有用,但它不是最好的解決方案。 –

+0

問題是關於格式化一個日期,而不是一個字符串 – Pav

0

這樣做,因爲PHP 5.2的更新,更好的辦法是DateTime class

$datetime = DateTime::createFromFormat('n/j/Y', '5/1/2011'); 
echo $datetime->format('Y,j,n'); 

See it in action