我正在解析iCal提醒字符串,类似于:-P14DT0H0M0S
使用PHP,我如何能够解析字符串的元素,以便我有:
<?
$reminder = "-P14DT0H0M0S" // somehow output to show "-2 weeks" or eve "-14 days"
// OR //
$reminder = "-P0DT3H0M0S" // somehow output to "-3 hours"
// etc...
对此的任何帮助都会很棒。我有点被困在哪里开始。
非常感谢!
答案 0 :(得分:1)
我对这种格式并不熟悉,而且几乎可以肯定有一个可用的库,但看起来像一个简单的正则表达式就可以完成这个工作。
类似的东西:
$matches = array();
if (preg_match('/^-P(\d+)DT(\d+)H(\d+)M(\d+)S$/', $reminder, $matches))
{
// matched pattern, elements captured with () will be stored in $matches[1..]
$days = $matches[1];
$hours = $matches[2];
$minutes = $matches[3];
$seconds = $matches[4];
}
答案 1 :(得分:1)
不确定项目的背景或最终结果是什么,但这可能有所帮助:
答案 2 :(得分:0)
Google日历可以完全放弃时间部分并返回类似'-P7D'的内容,因此我进行了调整 fromhere 的正则表达式来解决这个问题。
preg_match('/^-P(\d+)DT?(\d+)?H?(\d+)?M?(\d+)?S?$/', $reminder, $matches);