for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php namespace Limoncello\Flute\Types;
/**
* Copyright 2015-2017 [email protected]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
use DateTimeInterface;
use JsonSerializable;
* Wrapper class for `DateTimeInterface` value with JSON serialization support.
* Unfortunately PHP forbids implementing `DateTimeInterface` in user-level classes so it's not
* possible to make it look and behave like 'ordinary' date time.
* @package Limoncello\Flute
class JsonApiDateTime implements JsonSerializable
{
* @var DateTimeInterface
private $value;
* @var string
private $format;
* @param DateTimeInterface $value
* @param string $format
public function __construct(DateTimeInterface $value, string $format = DateBaseType::JSON_API_FORMAT)
$this->value = $value;
$this->format = $format;
}
* @return DateTimeInterface
public function getValue(): DateTimeInterface
return $this->value;
* @return string
public function getFormat(): string
return $this->format;
* @inheritdoc
public function jsonSerialize()
return $this->getValue()->format($this->getFormat());