Changes between Version 1 and Version 2 of Ticket #20328, comment 11
- Timestamp:
- 03/05/2013 12:19:48 PM (12 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ticket #20328, comment 11
v1 v2 3 3 The original phpdoc for the function hints at the bug: "Simply adds the value of gmt_offset." This is not sufficient to be DST aware. The point of DST is that gmt_offset changes throughout the year, so simply adding the offset to any date will be incorrect for ~50% of dates. 4 4 5 The dual function `get_gmt_from_date` uses the `timezone_string` option and the `DateTime` class to properly respect the timezone, as alluded to in #20398. This is why the second test `test_dst_respected_getting_gmt_date` passes. 5 The dual function `get_gmt_from_date` uses the `timezone_string` option and the `DateTime` class to properly respect the timezone, as alluded to in #20398. This is why the second test `test_dst_respected_getting_gmt_date` passes. The logic for in this function is rather nasty and roundabout, however, so the attached patch simplifies it. 6 6 7 The patch to `get_date_from_gmt` adds the same functionality, so that the `timezone_string` is used to convert the GMT date into a date local to that timezone, which respects DST where relevant. The patch only alters `get_gmt_from_date` to unify the logic between both functions and use `DateTime` properly.7 The patch to `get_date_from_gmt` adds the same functionality, so that the `timezone_string` is used to convert the GMT date into a date local to that timezone, which respects DST where relevant. 8 8 9 9 Note that both functions fall back to the naïve approach of adding or subtracting `gmt_offset` where the `timezone_string` option is not available.