2011-04-16 62 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