本文整理汇总了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));
}
示例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);
}