1<?php
2
3namespace Sabre\VObject\Property\VCard;
4
5use
6    Sabre\VObject\DateTimeParser,
7    Sabre\VObject\Property\Text;
8
9/**
10 * TimeStamp property
11 *
12 * This object encodes TIMESTAMP values.
13 *
14 * @copyright Copyright (C) fruux GmbH (https://fruux.com/)
15 * @author Evert Pot (http://evertpot.com/)
16 * @license http://sabre.io/license/ Modified BSD License
17 */
18class TimeStamp extends Text {
19
20    /**
21     * In case this is a multi-value property. This string will be used as a
22     * delimiter.
23     *
24     * @var string|null
25     */
26    public $delimiter = null;
27
28    /**
29     * Returns the type of value.
30     *
31     * This corresponds to the VALUE= parameter. Every property also has a
32     * 'default' valueType.
33     *
34     * @return string
35     */
36    public function getValueType() {
37
38        return "TIMESTAMP";
39
40    }
41
42    /**
43     * Returns the value, in the format it should be encoded for json.
44     *
45     * This method must always return an array.
46     *
47     * @return array
48     */
49    public function getJsonValue() {
50
51        $parts = DateTimeParser::parseVCardDateTime($this->getValue());
52
53        $dateStr =
54            $parts['year'] . '-' .
55            $parts['month'] . '-' .
56            $parts['date'] . 'T' .
57            $parts['hour'] . ':' .
58            $parts['minute'] . ':' .
59            $parts['second'];
60
61        // Timezone
62        if (!is_null($parts['timezone'])) {
63            $dateStr.=$parts['timezone'];
64        }
65
66        return array($dateStr);
67
68    }
69}
70