2010-05-19 114 views
5

的日期我有一個日期/時間字符串是這樣的:180510_112440這種格式ddmmyy_hhmmss 我需要一個片段具有格式化像這樣的字符串:2010-05-18 11時24個四十零秒 感謝幫幫我。重新格式化PHP

+0

你是否假設你所有的年份都是20XX?這將是一個潛在的問題 – Drew 2010-05-19 07:38:14

+1

我希望有一個網站某處我可以發佈像「我有一輛二手車,我需要一個新的東西」。學習一些非常基本的PHP怎麼樣? – 2010-05-19 07:42:21

回答

2

另一種可能的答案是strptime共同使用來解析您的日期和mktime功能:

<?php 

$orig_date = "180510_112440"; 

// Parse our date in order to retrieve in an array date's day, month, etc. 
$parsed_date = strptime($orig_date, "%d%m%y_%H%M%S"); 

// Make a unix timestamp of this parsed date: 
$nice_date = mktime($parsed_date['tm_hour'], 
        $parsed_date['tm_min'], 
        $parsed_date['tm_sec'], 
        $parsed_date['tm_mon'] + 1, 
        $parsed_date['tm_mday'], 
        $parsed_date['tm_year'] + 1900); 

// Verify the conversion: 
echo $orig_date . "\n"; 
echo date('d/m/y H:i:s', $nice_date); 
+0

這好多了! – Kreker 2010-05-19 08:25:43

+0

注意:此功能未在Windows平臺上實現。 – Kreker 2010-05-19 12:50:22

1
$inDate = '180510_112440'; 
$date = strtotime('20'.substr($inDate,4,2).'-'. 
     substr($inDate,2,2).'-'. 
     substr($inDate,0,2).' '. 
     substr($inDate,7,2).':'. 
     substr($inDate,9,2).':'. 
     substr($inDate,11,2)); 

echo date('d-M-Y H:i:s',$date); 

假定日期將永遠是一模一樣的格式,並始終21世紀

1
list($d,$m,$y,$h,$i,$s)=sscanf("180510_112440","%2c%2c%2c_%2c%2c%2c"); 
echo "20$y-$m-$d $h:$i:$s";