2011-04-16 46 views
1

我有這個字符串從eBay Web服務。PHP:時間和日期:容易substr問題,需要從1個字符串拆分日期和時間

// 2天23Hours 37Minutes50μ妙
$字符串= P2DT23H37M50S

我用下面的代碼來提取和時間和日期:

$ daysLeft = SUBSTR($字符串,1,1)。 「 天」;
$ hoursLeft = substr($ string,4,2)。 「 小時」;
$ minutesLeft = substr($ string,7,2)。 「 分鐘」;
$ secondsLeft = substr($ string,10,2)。 「秒」;

但問題是,當小時,分鐘和日期只有1位,字符串變得混亂起來,我開始工作,但我堅持找到一個簡單的方法來做到這一點,我打算把它寫在一堆If語句中,但真的想要一個更簡單的方法來做到這一點。

回答

3

如何使用sscanf(sprintf的相反)?

list($daysLeft, $hoursLeft, $minutesLeft, $secondsLeft) = sscanf($string, "P%dDT%dH%dM%DS "); 
+0

這種方式非常簡單,我學到了一種新的功能! sscanf,太棒了,非常感謝!第一次工作! – Anil 2011-04-16 16:46:49

0

如果你現在總是所有領域是存在的,只是使preg_split非數字字符串:

$fields = preg_split('[^0-9]+', $string); 
$daysLeft = $fields[1] . " Days"; 
$hoursLeft = $fields[2] . " Hours"; 
$minutesLeft = $fields[3] . " Minutes"; 
$secondsLeft = $fields[4] . " Seconds"; 
+0

這很好,但我想要一件簡單的東西,非常感謝! – Anil 2011-04-16 16:47:28