Hele, a ono to je nejaky Debian / Ubuntu, protoze to distribuce dokazou nekdy pekne zm**at, jsem stahnul source package z:
https://packages.ubuntu.com/lunar/php8.1-cliA vidim tam soubor:
./patches/0022-Use-system-timezone.patch - ktery natajnacku cuca TZ ze systemovyho locale.
A taky obsahuje velice vystizny popis v hlavicce, ze to lidem radi rozbijeme napric nazoru upstreamu:
From: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org>
Date: Sat, 2 May 2015 10:26:56 +0200
Subject: Use system timezone
Upstream don't want this patch. See
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=730771 for a summary.
This delta is recovered from previous versions of the system timezone patch in
Debian, and appears to have inadvertently been dropped. Author unknown.
To be used in tandem with use_embedded_timezonedb.patch and use_embedded_timezonedb_fixes.patch.
---
ext/date/php_date.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/ext/date/php_date.c b/ext/date/php_date.c
index 9844618..1a30313 100644
--- a/ext/date/php_date.c
+++ b/ext/date/php_date.c
@@ -545,6 +545,23 @@ static char* guess_timezone(const timelib_tzdb *tzdb)
DATEG(timezone_valid) = 1;
return DATEG(default_timezone);
}
+ /* Try to guess timezone from system information */
+ {
+ struct tm *ta, tmbuf;
+ time_t the_time;
+ char *tzid = NULL;
+
+ the_time = time(NULL);
+ ta = php_localtime_r(&the_time, &tmbuf);
+ if (ta) {
+ tzid = timelib_timezone_id_from_abbr(ta->tm_zone, ta->tm_gmtoff, ta->tm_isdst);
+ }
+ if (! tzid) {
+ tzid = "UTC";
+ }
+
+ return tzid;
+ }
/* Fallback to UTC */
return "UTC";
}
Imho v 8.2 tento patch mozna uz neni a pochopili ze vnaset odlisnosti nestoji za to.. takze s 8.2 sedi PHP dokumentace uz presne.