PHP Parse iCal Напоминание Строка - PullRequest
1 голос
/ 06 декабря 2010

В настоящее время я работаю над анализом строк напоминаний iCal, например: -P14DT0H0M0S

Используя PHP, как я смогу разобрать элементы строки, чтобы, если бы у меня было:

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

             //  OR  //

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

 // etc...

Любая помощь в этом была бы великолепна. Я как бы застрял на том, с чего начать.

Большое спасибо!

Ответы [ 3 ]

1 голос
/ 06 декабря 2010

Не уверен, что фон вашего проекта или вашего конечного результата, но это может помочь:

1 голос
/ 06 декабря 2010

Я не знаком с форматом, и почти наверняка есть библиотека, доступная для этого, но похоже, что здесь можно выполнить простое регулярное выражение.

Что-то вроде:

$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 голосов
/ 03 октября 2014

Календарь Google может полностью удалить часть времени и вернуть что-то вроде '-P7D', поэтому я настроил оттуда * регулярное выражение , чтобы справиться с этим.

preg_match('/^-P(\d+)DT?(\d+)?H?(\d+)?M?(\d+)?S?$/', $reminder, $matches);
...