当前位置: 首页>>代码示例>>PHP>>正文


PHP Horde_Icalendar::findComponentByAttribute方法代码示例

本文整理汇总了PHP中Horde_Icalendar::findComponentByAttribute方法的典型用法代码示例。如果您正苦于以下问题:PHP Horde_Icalendar::findComponentByAttribute方法的具体用法?PHP Horde_Icalendar::findComponentByAttribute怎么用?PHP Horde_Icalendar::findComponentByAttribute使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Horde_Icalendar的用法示例。


在下文中一共展示了Horde_Icalendar::findComponentByAttribute方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: _parseTZID

 /**
  * Groks the TZID and returns an offset in seconds from UTC for this
  * date and time.
  *
  * @param array $date   A date hash.
  * @param array $time   A time hash.
  * @param string $tzid  A timezone ID.
  *
  * @return integer  The offset from UTC in seconds for the provided
  *                  timezone and date/time.
  */
 protected function _parseTZID($date, $time, $tzid)
 {
     $vtimezone = $this->_container->findComponentByAttribute('vtimezone', 'TZID', $tzid);
     if (!$vtimezone) {
         return false;
     }
     $change_times = array();
     foreach ($vtimezone->getComponents() as $o) {
         $change_times = array_merge($change_times, $vtimezone->parseChild($o, $date['year']));
     }
     if (!$change_times) {
         return false;
     }
     usort($change_times, function ($a, $b) {
         if (!$a['end']) {
             if (!$b['end']) {
                 return $a['time'] - $b['time'];
             }
             return 1;
         }
         if (!$b['end']) {
             return -1;
         }
         return $a['end'] - $b['end'];
     });
     // Time is arbitrarily based on UTC for comparison.
     $t = @gmmktime($time['hour'], $time['minute'], $time['second'], $date['month'], $date['mday'], $date['year']);
     if ($t < $change_times[0]['time']) {
         return $change_times[0]['from'];
     }
     for ($i = 0, $n = count($change_times); $i < $n - 1; $i++) {
         // See Bug: 14153. Some timezone definitions may be such that a
         // transition will incorrectly match due to the way we parse the
         // 'end' times. There *may* be a more correct way to do this by
         // sorting the transitions/handling 'end' values differently.
         if ($t >= $change_times[$i]['time'] && $t < $change_times[$i + 1]['time'] && $this->_checkEndDate($t, $change_times[$i + 1])) {
             return $change_times[$i]['to'];
         }
     }
     if ($t >= $change_times[$n - 1]['time']) {
         return $change_times[$n - 1]['to'];
     }
     return false;
 }
开发者ID:kossamums,项目名称:horde,代码行数:55,代码来源:Icalendar.php

示例2: _parseTZID

 /**
  * Groks the TZID and returns an offset in seconds from UTC for this
  * date and time.
  *
  * @param array $date   A date hash.
  * @param array $time   A time hash.
  * @param string $tzid  A timezone ID.
  *
  * @return integer  The offset from UTC in seconds for the provided
  *                  timezone and date/time.
  */
 protected function _parseTZID($date, $time, $tzid)
 {
     $vtimezone = $this->_container->findComponentByAttribute('vtimezone', 'TZID', $tzid);
     if (!$vtimezone) {
         return false;
     }
     $change_times = array();
     foreach ($vtimezone->getComponents() as $o) {
         $change_times = array_merge($change_times, $vtimezone->parseChild($o, $date['year']));
     }
     if (!$change_times) {
         return false;
     }
     usort($change_times, function ($a, $b) {
         if (!$a['end']) {
             if (!$b['end']) {
                 return $a['time'] - $b['time'];
             }
             return 1;
         }
         if (!$b['end']) {
             return -1;
         }
         return $a['end'] - $b['end'];
     });
     // Time is arbitrarily based on UTC for comparison.
     $t = @gmmktime($time['hour'], $time['minute'], $time['second'], $date['month'], $date['mday'], $date['year']);
     if ($t < $change_times[0]['time']) {
         return $change_times[0]['from'];
     }
     for ($i = 0, $n = count($change_times); $i < $n - 1; $i++) {
         if ($t >= $change_times[$i]['time'] && $t < $change_times[$i + 1]['time']) {
             return $change_times[$i]['to'];
         }
     }
     if ($t >= $change_times[$n - 1]['time']) {
         return $change_times[$n - 1]['to'];
     }
     return false;
 }
开发者ID:raz0rsdge,项目名称:horde,代码行数:51,代码来源:Icalendar.php


注:本文中的Horde_Icalendar::findComponentByAttribute方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。