If none of the above succeed, date_default_timezone_get() will return a default timezone of UTC.
... also ein ordentlicher Rückgabewert unfd kein Programmabbruch.
Definiere "ordentlich". Eher "gültig". Gültig im Sinne der Definition ist ein String. Das Problem dabei ist, dass letztendlich an verschiedenen Stellen untersucht wird, was für den Server als Zeitzone KONFIGURIERT wurde.
Und bei Servern, die im Internet ihren Dienst tun, ist das entweder die lokale Zeitzone des Serverbetreibers oder UTC. Vor allem aber kann sich die Systemeinstellung ändern ohne das Du als "Webmaster" vom Serverbetreiber informiert wirst. Zu dem KANN diese Einstellung in php.ini, .htaccess, httpd.conf oder .user.ini überschrieben sein. Das Ergebnis ist also allenfalls eine Vermutung und kann mit den zeiten, die PHP dann ausgibt nicht so viel zu tun haben, wie Du es vermutest. In der Warnung steht deshalb "unsafe".
Also rät die Warnung dazu, die Zeitzone nicht vom System zu lesen, sondern mit den gängigen Methoden (date_default_timezone_set(), besser die Eigenschaft date.timezone in der php.ini, .htaccess, httpd.conf oder .user.ini) zu setzen.
... unfd kein Programmabbruch.
Es ist eine Warnung / Notiz. Ein Abbruch erfolgt also NICHT.
sondern die aktuelle Einstellung wissen
Tja. Da date_default_timezone_get(); sich die Daten aus verschiedenen Quellen holt, solltest Du wissen welche der aktuellen Einstellungen Du wissen willst und dann konkret deren Quelle fragen.
Umfassende und richtige Informationen zu der derzeit wirksamen Zeitzoneneinstellung liefert date('e') -> Name date('T') -> Abkürzung wie "EST" oder date('O') -> Differenz zu UTC in h oder date('z') -> Differenz zu UTC in Sekunden. Dazu muss man also nicht mit date_default_timezone_get() orakleln.