Skip to content

Commit 86f601c

Browse files
committed
Date 1.1.0
1 parent ad42cf5 commit 86f601c

File tree

4 files changed

+27
-89
lines changed

4 files changed

+27
-89
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
1+
# v1.1.0, 2018-09-10
2+
* update timezones method
3+
14
# v1.0.0, 2018-04-19
25
* Initial release

Date.php

Lines changed: 22 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -242,93 +242,28 @@ public static function dos2unix(int $timestamp) : int
242242
*/
243243
public static function timezones() : array
244244
{
245-
return ['Kwajalein'=>'(GMT-12:00) International Date Line West',
246-
'Pacific/Samoa'=>'(GMT-11:00) Midway Island, Samoa',
247-
'Pacific/Honolulu'=>'(GMT-10:00) Hawaii',
248-
'America/Anchorage'=>'(GMT-09:00) Alaska',
249-
'America/Los_Angeles'=>'(GMT-08:00) Pacific Time (US & Canada)',
250-
'America/Tijuana'=>'(GMT-08:00) Tijuana, Baja California',
251-
'America/Denver'=>'(GMT-07:00) Mountain Time (US & Canada)',
252-
'America/Chihuahua'=>'(GMT-07:00) Chihuahua, La Paz, Mazatlan',
253-
'America/Phoenix'=>'(GMT-07:00) Arizona',
254-
'America/Regina'=>'(GMT-06:00) Saskatchewan',
255-
'America/Tegucigalpa'=>'(GMT-06:00) Central America',
256-
'America/Chicago'=>'(GMT-06:00) Central Time (US & Canada)',
257-
'America/Mexico_City'=>'(GMT-06:00) Guadalajara, Mexico City, Monterrey',
258-
'America/New_York'=>'(GMT-05:00) Eastern Time (US & Canada)',
259-
'America/Bogota'=>'(GMT-05:00) Bogota, Lima, Quito, Rio Branco',
260-
'America/Indiana/Indianapolis'=>'(GMT-05:00) Indiana (East)',
261-
'America/Caracas'=>'(GMT-04:30) Caracas',
262-
'America/Halifax'=>'(GMT-04:00) Atlantic Time (Canada)',
263-
'America/Manaus'=>'(GMT-04:00) Manaus',
264-
'America/Santiago'=>'(GMT-04:00) Santiago',
265-
'America/La_Paz'=>'(GMT-04:00) La Paz',
266-
'America/St_Johns'=>'(GMT-03:30) Newfoundland',
267-
'America/Argentina/Buenos_Aires'=>'(GMT-03:00) Buenos Aires',
268-
'America/Sao_Paulo'=>'(GMT-03:00) Brasilia',
269-
'America/Godthab'=>'(GMT-03:00) Greenland',
270-
'America/Montevideo'=>'(GMT-03:00) Montevideo',
271-
'America/Argentina/Buenos_Aires'=>'(GMT-03:00) Georgetown',
272-
'Atlantic/South_Georgia'=>'(GMT-02:00) Mid-Atlantic',
273-
'Atlantic/Azores'=>'(GMT-01:00) Azores',
274-
'Atlantic/Cape_Verde'=>'(GMT-01:00) Cape Verde Is.',
275-
'Europe/London'=>'(GMT) Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London',
276-
'Atlantic/Reykjavik'=>'(GMT) Monrovia, Reykjavik',
277-
'Africa/Casablanca'=>'(GMT) Casablanca',
278-
'Europe/Belgrade'=>'(GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague',
279-
'Europe/Sarajevo'=>'(GMT+01:00) Sarajevo, Skopje, Warsaw, Zagreb',
280-
'Europe/Brussels'=>'(GMT+01:00) Brussels, Copenhagen, Madrid, Paris',
281-
'Africa/Algiers'=>'(GMT+01:00) West Central Africa',
282-
'Europe/Amsterdam'=>'(GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna',
283-
'Africa/Cairo'=>'(GMT+02:00) Cairo',
284-
'Europe/Helsinki'=>'(GMT+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius',
285-
'Europe/Athens'=>'(GMT+02:00) Athens, Bucharest, Istanbul',
286-
'Asia/Jerusalem'=>'(GMT+02:00) Jerusalem',
287-
'Asia/Amman'=>'(GMT+02:00) Amman',
288-
'Asia/Beirut'=>'(GMT+02:00) Beirut',
289-
'Africa/Windhoek'=>'(GMT+02:00) Windhoek',
290-
'Africa/Harare'=>'(GMT+02:00) Harare, Pretoria',
291-
'Asia/Kuwait'=>'(GMT+03:00) Kuwait, Riyadh',
292-
'Asia/Baghdad'=>'(GMT+03:00) Baghdad',
293-
'Europe/Minsk'=>'(GMT+03:00) Minsk',
294-
'Africa/Nairobi'=>'(GMT+03:00) Nairobi',
295-
'Asia/Tbilisi'=>'(GMT+03:00) Tbilisi',
296-
'Asia/Tehran'=>'(GMT+03:30) Tehran',
297-
'Asia/Muscat'=>'(GMT+04:00) Abu Dhabi, Muscat',
298-
'Asia/Baku'=>'(GMT+04:00) Baku',
299-
'Europe/Moscow'=>'(GMT+04:00) Moscow, St. Petersburg, Volgograd',
300-
'Asia/Yerevan'=>'(GMT+04:00) Yerevan',
301-
'Asia/Karachi'=>'(GMT+05:00) Islamabad, Karachi',
302-
'Asia/Tashkent'=>'(GMT+05:00) Tashkent',
303-
'Asia/Kolkata'=>'(GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi',
304-
'Asia/Colombo'=>'(GMT+05:30) Sri Jayawardenepura',
305-
'Asia/Katmandu'=>'(GMT+05:45) Kathmandu',
306-
'Asia/Dhaka'=>'(GMT+06:00) Astana, Dhaka',
307-
'Asia/Yekaterinburg'=>'(GMT+06:00) Ekaterinburg',
308-
'Asia/Rangoon'=>'(GMT+06:30) Yangon (Rangoon)',
309-
'Asia/Novosibirsk'=>'(GMT+07:00) Almaty, Novosibirsk',
310-
'Asia/Bangkok'=>'(GMT+07:00) Bangkok, Hanoi, Jakarta',
311-
'Asia/Beijing'=>'(GMT+08:00) Beijing, Chongqing, Hong Kong, Urumqi',
312-
'Asia/Ulaanbaatar'=>'(GMT+08:00) Irkutsk, Ulaan Bataar',
313-
'Asia/Krasnoyarsk'=>'(GMT+08:00) Krasnoyarsk',
314-
'Asia/Kuala_Lumpur'=>'(GMT+08:00) Kuala Lumpur, Singapore',
315-
'Asia/Taipei'=>'(GMT+08:00) Taipei',
316-
'Australia/Perth'=>'(GMT+08:00) Perth',
317-
'Asia/Seoul'=>'(GMT+09:00) Seoul',
318-
'Asia/Tokyo'=>'(GMT+09:00) Osaka, Sapporo, Tokyo',
319-
'Australia/Darwin'=>'(GMT+09:30) Darwin',
320-
'Australia/Adelaide'=>'(GMT+09:30) Adelaide',
321-
'Australia/Sydney'=>'(GMT+10:00) Canberra, Melbourne, Sydney',
322-
'Australia/Brisbane'=>'(GMT+10:00) Brisbane',
323-
'Australia/Hobart'=>'(GMT+10:00) Hobart',
324-
'Asia/Yakutsk'=>'(GMT+10:00) Yakutsk',
325-
'Pacific/Guam'=>'(GMT+10:00) Guam, Port Moresby',
326-
'Asia/Vladivostok'=>'(GMT+11:00) Vladivostok',
327-
'Pacific/Fiji'=>'(GMT+12:00) Fiji, Kamchatka, Marshall Is.',
328-
'Asia/Magadan'=>'(GMT+12:00) Magadan, Solomon Is., New Caledonia',
329-
'Pacific/Auckland'=>'(GMT+12:00) Auckland, Wellington',
330-
'Pacific/Tongatapu'=>'(GMT+13:00) Nukualofa'
331-
];
245+
$timezones = \DateTimeZone::listIdentifiers(\DateTimeZone::ALL);
246+
$offsets = [];
247+
$testDate = new \DateTime();
248+
249+
foreach ($timezones as $zone) {
250+
$tz = new \DateTimeZone($zone);
251+
$offsets[$zone] = $tz->getOffset($testDate);
252+
}
253+
254+
asort($offsets);
255+
256+
$timezone_list = [];
257+
foreach ($offsets as $timezone => $offset) {
258+
$offset_prefix = $offset < 0 ? '-' : '+';
259+
$offset_formatted = gmdate('H:i', abs($offset));
260+
261+
$pretty_offset = "UTC${offset_prefix}${offset_formatted}";
262+
263+
$timezone_list[$timezone] = "(${pretty_offset}) ".str_replace('_', ' ', $timezone);
264+
}
265+
266+
return $timezone_list;
332267
}
333268

334269
/**

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2018 Flextype Components
3+
Copyright (c) 2019 Flextype Components
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Date Component
2-
![version](https://img.shields.io/badge/version-1.0.0-brightgreen.svg?style=flat-square "Version")
2+
![version](https://img.shields.io/badge/version-1.1.0-brightgreen.svg?style=flat-square "Version")
33
[![MIT License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](https://github.com/flextype-components/date/blob/master/LICENSE)
44

55
Date component is a set of methods to help with the manipulation of dates.

0 commit comments

Comments
 (0)