public function testFormat() { $dtf = new DateHandler(); $iso8601DateIntervalString = $dtf->format(new \DateInterval('PT45M')); $this->assertEquals($iso8601DateIntervalString, 'PT45M'); $iso8601DateIntervalString = $dtf->format(new \DateInterval('P2YT45M')); $this->assertEquals($iso8601DateIntervalString, 'P2YT45M'); $iso8601DateIntervalString = $dtf->format(new \DateInterval('P2Y4DT6H8M16S')); $this->assertEquals($iso8601DateIntervalString, 'P2Y4DT6H8M16S'); }
/** * {@inheritdoc} */ public function deserializeDateTimeFromJson(JsonDeserializationVisitor $visitor, $data, array $type) { // Handle empty or invalid date / datetime values. if ('' === $data || null === $data || strpos($data, '0000-00-00') !== false) { return null; } // We want to always show the response in the UTC timezone. $dateTime = parent::deserializeDateTimeFromJson($visitor, $data, $type); if ($dateTime instanceof \DateTime) { $dateTime->setTimezone(new \DateTimeZone('UTC')); } return $dateTime; }
/** * @param string $defaultFormat * @param string $defaultTimezone */ public function __construct($defaultFormat = DateTime::ISO8601, $defaultTimezone = 'UTC') { $this->format = $defaultFormat; $this->timezone = new DateTimeZone($defaultTimezone); parent::__construct($defaultFormat, $defaultTimezone); }
public static function getSubscribingMethods() { $methods = parent::getSubscribingMethods(); $methods[] = array('type' => 'DateTime', 'direction' => GraphNavigator::DIRECTION_DESERIALIZATION, 'format' => 'array'); return $methods; }