diff options
Diffstat (limited to 'vendor/aws/aws-sdk-php/src/Api/TimestampShape.php')
-rw-r--r-- | vendor/aws/aws-sdk-php/src/Api/TimestampShape.php | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/vendor/aws/aws-sdk-php/src/Api/TimestampShape.php b/vendor/aws/aws-sdk-php/src/Api/TimestampShape.php new file mode 100644 index 0000000..7ef2646 --- /dev/null +++ b/vendor/aws/aws-sdk-php/src/Api/TimestampShape.php @@ -0,0 +1,48 @@ +<?php +namespace 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 \DateTime) { + $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); + } + } +} |