<?php
/**
* @link http://stackoverflow.com/questions/26453510/datetimezone-and-utc-offset-for-standard-and-daylight-times
*/
/**
* @param $seconds
*
* @return string +\d\d\d\d / -\d\d\d\d
*/
function format_offset($seconds) {
$minutes = (int) ($seconds / 60);
$hours = (int) ($minutes / 60);
$leftover = abs($minutes - $hours * 60);
return sprintf("%+03d%02d", $hours, $leftover);
}
$zones = array('America/New_York', 'US/Eastern', 'EDT', 'EST');
foreach ($zones as $zone) {
// get offset
$timezone = new DateTimeZone($zone);
$offset = $timezone->getOffset(new DateTime('2012-01-01', $timezone));
$offset2 = $timezone->getOffset(new DateTime('2012-06-30', $timezone));
printf("%s (%s) %s / %s (2012-01-01 / 2012-06-30)\n", $zone, $timezone->getName(), format_offset($offset), format_offset($offset2));
}
- Output for 8.0.21 - 8.0.30, 8.1.8 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
- America/New_York (America/New_York) -0500 / -0400 (2012-01-01 / 2012-06-30)
US/Eastern (US/Eastern) -0500 / -0400 (2012-01-01 / 2012-06-30)
EDT (EDT) -0400 / -0400 (2012-01-01 / 2012-06-30)
EST (EST) -0500 / -0500 (2012-01-01 / 2012-06-30)
- Output for 5.5.24 - 5.5.35, 5.6.8 - 5.6.28, 7.0.0 - 7.0.20, 7.1.0 - 7.1.10, 7.2.0 - 7.2.33, 7.3.16 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.20, 8.1.0 - 8.1.7
- America/New_York (America/New_York) -0500 / -0400 (2012-01-01 / 2012-06-30)
US/Eastern (US/Eastern) -0500 / -0400 (2012-01-01 / 2012-06-30)
EDT (EDT) -0500 / -0500 (2012-01-01 / 2012-06-30)
EST (EST) -0500 / -0500 (2012-01-01 / 2012-06-30)
- Output for 5.2.0 - 5.2.17, 5.3.0 - 5.3.29, 5.4.0 - 5.4.45
- America/New_York (America/New_York) -0500 / -0400 (2012-01-01 / 2012-06-30)
US/Eastern (US/Eastern) -0500 / -0400 (2012-01-01 / 2012-06-30)
EDT (America/New_York) -0500 / -0400 (2012-01-01 / 2012-06-30)
EST (America/New_York) -0500 / -0400 (2012-01-01 / 2012-06-30)
- Output for 5.0.0 - 5.0.5, 5.1.0 - 5.1.6
- Fatal error: Class 'DateTimeZone' not found in /in/VRCAR on line 22
Process exited with code 255. - Output for 4.3.2 - 4.3.11, 4.4.0 - 4.4.9
- Fatal error: Cannot instantiate non-existent class: datetimezone in /in/VRCAR on line 22
Process exited with code 255. - Output for 4.3.0 - 4.3.1
- Fatal error: Cannot instantiate non-existent class: datetimezone in /in/VRCAR on line 22
preferences:
236.92 ms | 401 KiB | 310 Q