* @return string $result with timezone and offset
*/
function timezone () {
- global $invert_time;
+ global $invert_time, $show_timezone_name;
$diff_second = date('Z');
if ($invert_time) {
$diff_second = abs($diff_second);
$diff_hour = floor ($diff_second / 3600);
$diff_minute = floor (($diff_second-3600*$diff_hour) / 60);
- $zonename = '('.strftime('%Z').')';
- $result = sprintf ("%s%02d%02d %s", $sign, $diff_hour, $diff_minute,
- $zonename);
+
+ // If an administrator wants to add the timezone name to the
+ // end of the date header, they can set $show_timezone_name
+ // to boolean TRUE in config/config_local.php, but that is
+ // NOT RFC-822 compliant (see section 5.1). Moreover, some
+ // Windows users reported that strftime('%Z') was returning
+ // the full zone name (not the abbreviation) which in some
+ // cases included 8-bit characters (not allowed as is in headers).
+ // The PHP manual actually does NOT promise what %Z will return
+ // for strftime!: "The time zone offset/abbreviation option NOT
+ // given by %z (depends on operating system)"
+ //
+ if ($show_timezone_name) {
+ $zonename = '('.strftime('%Z').')';
+ $result = sprintf ("%s%02d%02d %s", $sign, $diff_hour, $diff_minute, $zonename);
+ } else {
+ $result = sprintf ("%s%02d%02d", $sign, $diff_hour, $diff_minute);
+ }
return ($result);
}