123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- <?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 \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);
- }
- }
- }
|