2013-04-08 57 views

回答

2

如果圖案總是會24/12/2010,你可能會爆炸的「/」,切換的[0值的數組]和[1],然後再次破滅數組:

$date_1 = '24/12/2010 23:59:59'; 
$array = explode('/', $date_1); 
$tmp = $array[0]; 
$array[0] = $array[1]; 
$array[1] = $tmp; 
unset($tmp); 
$date_2 = implode('/', $array); 

也許不是最優雅的解決方案,但如果24/12/2010模式是一致的工作。

+0

爲什麼在存在額外的功能時使用困難的方式? – bwoebi 2013-04-08 16:14:31

+0

好的解決方案即使很難,有沒有最快的方法來做到這一點? – cMinor 2013-04-08 16:19:43

+0

@cMinor如果你打算格式化多個字符串,你可以把它放到一個函數中,如: 'function swapDate($ string){ $ array = explode('/',$ string); $ tmp = $ array [0]; $ array [1] = $ array [0]; $ array [0] = $ tmp; return implode('/',$ array); }' – 2013-04-08 16:57:38

5

您可以:

$date = DateTime::createFromFormat('d/m/Y H:i:s', '24/12/2010 23:59:59'); 

echo $date->format('m/d/Y H:i:s'); 
+0

如果它發生在服務器中沒有PHP> 5.3 ... ...? – cMinor 2013-04-08 16:17:21

+1

那麼你允許使用硬盤的方式...用爆炸等。(順便說一句,這是> = PHP 5.3) – bwoebi 2013-04-08 16:18:49

1

使用date_parse_from_format,然後strftime上的結果與適當的修飾符。

date('m/d/Y H:i:s',date_parse_from_format('d/m/Y H:i:s', $date_1)); 
1

你可以做下面的代碼:

date('m/d/Y h:i:s", strtotime($date_1)); 
+1

失敗。只有$ dte_2是strtotime的有效日期 – bwoebi 2013-04-08 16:10:45

+0

這是一個錯誤的答案。它不起作用。 http://codepad.viper-7.com/rqzI8h – Antony 2013-04-08 16:12:08

相關問題