| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | <?phpnamespace Aws\Api;/** * Represents a timestamp shape. */class TimestampShape extends Shape{    public function __construct(array $definition, ShapeMap $shapeMap)    {        $definition['type'] = 'timestamp';        parent::__construct($definition, $shapeMap);    }    /**     * Formats a timestamp value for a service.     *     * @param mixed  $value  Value to format     * @param string $format Format used to serialize the value     *     * @return int|string     * @throws \UnexpectedValueException if the format is unknown.     * @throws \InvalidArgumentException if the value is an unsupported type.     */    public static function format($value, $format)    {        if ($value instanceof \DateTimeInterface) {            $value = $value->getTimestamp();        } elseif (is_string($value)) {            $value = strtotime($value);        } elseif (!is_int($value)) {            throw new \InvalidArgumentException('Unable to handle the provided'                . ' timestamp type: ' . gettype($value));        }        switch ($format) {            case 'iso8601':                return gmdate('Y-m-d\TH:i:s\Z', $value);            case 'rfc822':                return gmdate('D, d M Y H:i:s \G\M\T', $value);            case 'unixTimestamp':                return $value;            default:                throw new \UnexpectedValueException('Unknown timestamp format: '                    . $format);        }    }}
 |