Author: van.de.bugger
Description:
SMW handles timezones incorrectly.
It does not recognize official timezone names, like America/New_York'. It recognizes only abbreviations, like EST'.
But the major problem is the list of monikers hardcoded into `SMW_DV_Time.php':
/// General purpose time zone monikers and their associated offsets in hours and fractions of hours
protected static $m_tz = array( 'A' => 1, 'ACDT' => 10.5, 'ACST' => 9.5, 'ADT' => -3, 'AEDT' => 11,
...
The problem is that an offset of a particular moniker is *not* fixed but depends on time. Sometimes government in a country may enable or disable daylight saving time, or change offset. And do it many times.
There is tzdata database, which contain all known info about timezones. SMW must use it to handle timestamps properly.
It seems easiest way to use tzdata is using PHP DateTime and DateTimeZone classes for handling times.
Version: unspecified
Severity: normal