2010-12-05 7 views
1

:PHPを使用して-P14DT0H0M0SPHPパースiCalのアラーム文字列私は現在、同様のへのiCalのアラーム文字列、パースに取り組んでいます

を私は持っていたかのように、どのように私は、文字列の要素を解析することができるかもしれない:

<? 
$reminder = "-P14DT0H0M0S" // somehow output to show "-2 weeks" or eve "-14 days" 

      // OR // 

$reminder = "-P0DT3H0M0S" // somehow output to "-3 hours" 

// etc... 

これに関するお手伝いがあれば助かります。私はどこから始めるのかなんだか固執しています。

多くの感謝!

答えて

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]; 
} 
+0

ありがとうございます。これは私が把握しようとしていたものです。 – Dodinas

0

Googleカレンダーをドロップすることができます時間部分を完全に戻して、「-P7D」のようなものを返すので、私は微調整しました そこからここでそれに対処するのregexpの。

preg_match('/^-P(\d+)DT?(\d+)?H?(\d+)?M?(\d+)?S?$/', $reminder, $matches); 
関連する問題