38 lines
1.3 KiB
PHP
38 lines
1.3 KiB
PHP
<?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);
|
|
}
|
|
|
|
}
|