diff core/modules/system/src/Controller/TimezoneController.php @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children 7a779792577d
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/core/modules/system/src/Controller/TimezoneController.php	Wed Nov 29 16:09:58 2017 +0000
@@ -0,0 +1,38 @@
+<?php
+
+namespace Drupal\system\Controller;
+
+use Symfony\Component\HttpFoundation\JsonResponse;
+
+/**
+ * Provides a callback for finding out a timezone name.
+ */
+class TimezoneController {
+
+  /**
+   * Retrieve a JSON object containing a time zone name given a timezone
+   * abbreviation.
+   *
+   * @param string $abbreviation
+   *   Time zone abbreviation.
+   * @param int $offset
+   *   Offset from GMT in seconds. Defaults to -1 which means that first found
+   *   time zone corresponding to abbr is returned. Otherwise exact offset is
+   *   searched and only if not found then the first time zone with any offset
+   *   is returned.
+   * @param null|bool $is_daylight_saving_time
+   *   Daylight saving time indicator. If abbr does not exist then the time
+   *   zone is searched solely by offset and isdst.
+   *
+   * @return JsonResponse
+   *   The timezone name in JsonResponse object.
+   */
+  public function getTimezone($abbreviation = '', $offset = -1, $is_daylight_saving_time = NULL) {
+    // An abbreviation of "0" passed in the callback arguments should be
+    // interpreted as the empty string.
+    $abbreviation = $abbreviation ? $abbreviation : '';
+    $timezone = timezone_name_from_abbr($abbreviation, intval($offset), $is_daylight_saving_time);
+    return new JsonResponse($timezone);
+  }
+
+}