summaryrefslogtreecommitdiff
path: root/vendor/aws/aws-sdk-php/src/Api/TimestampShape.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/aws/aws-sdk-php/src/Api/TimestampShape.php')
-rw-r--r--vendor/aws/aws-sdk-php/src/Api/TimestampShape.php48
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);
+ }
+ }
+}