Changeset View
Changeset View
Standalone View
Standalone View
resources/timezones/generate-timezone-map.php
- This file was added.
| Property | Old Value | New Value |
|---|---|---|
| File Mode | null | 100755 |
| #!/usr/bin/env php | |||||
| <?php | |||||
| $root = dirname(dirname(dirname(__FILE__))); | |||||
| require_once $root.'/scripts/init/init-script.php'; | |||||
| $xml = $root.'/externals/cldr/cldr_windows_timezones.xml'; | |||||
| $xml = Filesystem::readFile($xml); | |||||
| $xml = new SimpleXMLElement($xml); | |||||
| $result_map = array(); | |||||
| $ignore = array( | |||||
| 'UTC', | |||||
| 'UTC-11', | |||||
| 'UTC-02', | |||||
| 'UTC-08', | |||||
| 'UTC-09', | |||||
| 'UTC+12', | |||||
| ); | |||||
| $ignore = array_fuse($ignore); | |||||
| $zones = $xml->windowsZones->mapTimezones->mapZone; | |||||
| foreach ($zones as $zone) { | |||||
| $windows_name = (string)$zone['other']; | |||||
| $target_name = (string)$zone['type']; | |||||
| // Ignore the offset-based timezones from the CLDR map, since we handle | |||||
| // these later. | |||||
| if (isset($ignore[$windows_name])) { | |||||
| continue; | |||||
| } | |||||
| // We've already seen this timezone so we don't need to add it to the map | |||||
| // again. | |||||
| if (isset($result_map[$windows_name])) { | |||||
| continue; | |||||
| } | |||||
| $result_map[$windows_name] = $target_name; | |||||
| } | |||||
| asort($result_map); | |||||
| echo id(new PhutilJSON()) | |||||
| ->encodeFormatted($result_map); | |||||