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


PHP DateTimeParser::parseVCardDateAndOrTime方法代码示例

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


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

示例1: assertDateAndOrTimeEqualsTo

 protected function assertDateAndOrTimeEqualsTo($date, $parts)
 {
     $this->assertSame(DateTimeParser::parseVCardDateAndOrTime($date), array_merge(['year' => null, 'month' => null, 'date' => null, 'hour' => null, 'minute' => null, 'second' => null, 'timezone' => null], $parts));
 }
开发者ID:Henni,项目名称:sabre-vobject,代码行数:4,代码来源:DateTimeParserTest.php

示例2: xmlSerializeValue

 /**
  * This method serializes only the value of a property. This is used to
  * create xCard or xCal documents.
  *
  * @param Xml\Writer $writer  XML writer.
  *
  * @return void
  */
 protected function xmlSerializeValue(Xml\Writer $writer)
 {
     $valueType = strtolower($this->getValueType());
     $parts = DateTimeParser::parseVCardDateAndOrTime($this->getValue());
     $value = '';
     // $d = defined
     $d = function ($part) use($parts) {
         return !is_null($parts[$part]);
     };
     // $r = read
     $r = function ($part) use($parts) {
         return $parts[$part];
     };
     // From the Relax NG Schema.
     //
     // # 4.3.1
     // value-date = element date {
     //     xsd:string { pattern = "\d{8}|\d{4}-\d\d|--\d\d(\d\d)?|---\d\d" }
     //   }
     if (($d('year') || $d('month') || $d('date')) && (!$d('hour') && !$d('minute') && !$d('second') && !$d('timezone'))) {
         if ($d('year') && $d('month') && $d('date')) {
             $value .= $r('year') . $r('month') . $r('date');
         } elseif ($d('year') && $d('month') && !$d('date')) {
             $value .= $r('year') . '-' . $r('month');
         } elseif (!$d('year') && $d('month')) {
             $value .= '--' . $r('month') . $r('date');
         } elseif (!$d('year') && !$d('month') && $d('date')) {
             $value .= '---' . $r('date');
         }
         // # 4.3.2
         // value-time = element time {
         //     xsd:string { pattern = "(\d\d(\d\d(\d\d)?)?|-\d\d(\d\d?)|--\d\d)"
         //                          ~ "(Z|[+\-]\d\d(\d\d)?)?" }
         //   }
     } elseif (!$d('year') && !$d('month') && !$d('date') && ($d('hour') || $d('minute') || $d('second'))) {
         if ($d('hour')) {
             $value .= $r('hour') . $r('minute') . $r('second');
         } elseif ($d('minute')) {
             $value .= '-' . $r('minute') . $r('second');
         } elseif ($d('second')) {
             $value .= '--' . $r('second');
         }
         $value .= $r('timezone');
         // # 4.3.3
         // value-date-time = element date-time {
         //     xsd:string { pattern = "(\d{8}|--\d{4}|---\d\d)T\d\d(\d\d(\d\d)?)?"
         //                          ~ "(Z|[+\-]\d\d(\d\d)?)?" }
         //   }
     } elseif ($d('date') && $d('hour')) {
         if ($d('year') && $d('month') && $d('date')) {
             $value .= $r('year') . $r('month') . $r('date');
         } elseif (!$d('year') && $d('month') && $d('date')) {
             $value .= '--' . $r('month') . $r('date');
         } elseif (!$d('year') && !$d('month') && $d('date')) {
             $value .= '---' . $r('date');
         }
         $value .= 'T' . $r('hour') . $r('minute') . $r('second') . $r('timezone');
     }
     $writer->writeElement($valueType, $value);
 }
开发者ID:linagora,项目名称:sabre-vobject,代码行数:68,代码来源:DateAndOrTime.php


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