"date(): nie jest bezpiecznie polegać na Ustawieniach strefy czasowej systemu…"

Dostałem ten błąd, gdy poprosiłem o aktualizację PHP z wersji 5.2.17 do PHP 5.3.21 na serwerze.

<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">

<h4>A PHP Error was encountered</h4>

<p>Severity: Warning</p>
<p>Message:  date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/New_York' for 'EDT/-4.0/DST' instead</p>
<p>Filename: libraries/Log.php</p>
<p>Line Number: 86</p>

</div>
Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/New_York' for 'EDT/-4.0/DST' instead in /filelocation right here/system/libraries/Log.php on line 86

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/New_York' for 'EDT/-4.0/DST' instead in /filelocation right here/system/libraries/Log.php on line 99
<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">

<h4>A PHP Error was encountered</h4>

<p>Severity: Warning</p>
<p>Message:  date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/New_York' for 'EDT/-4.0/DST' instead</p>
<p>Filename: libraries/Log.php</p>
<p>Line Number: 99</p>

</div>
 374
Author: Vinícius Fagundes, 2013-05-27

24 answers

Prawdopodobnie musisz umieścić strefę czasową w linii konfiguracji w pliku php.ini. Powinieneś mieć taki blok w swoim php.plik ini:

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = America/New_York

Jeśli nie, dodaj go (zamieniając strefę czasową na Twoją). Po skonfigurowaniu upewnij się, że ponownie uruchomiłeś httpd (service httpd restart).

Oto lista obsługiwanych stref czasowych .

 573
Author: CtrlX,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-09 16:55:51

Jeśli nie możesz zmodyfikować swojego php.konfiguracja ini, równie dobrze możesz użyć poniższego fragmentu na początku kodu:

date_default_timezone_set('Africa/Lagos');//or change to whatever timezone you want

Listę stref czasowych można znaleźć na stronie http://www.php.net/manual/en/timezones.php .

 205
Author: Babatunde Adeyemi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-04 22:54:15

Dodaj następujący plik index.php. Po raz pierwszy natknąłem się na to, gdy przeniosłem moją aplikację z mojego serwera XAMPP do Apache 2.2 i PHP 5.4...

Radzę zrobić to w pliku index.php zamiast pliku php.ini.

if( ! ini_get('date.timezone') )
{
    date_default_timezone_set('GMT');
}
 75
Author: Justis Matotoka,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-09 16:59:14
<? print(gmdate("Y")); ?> 

Zamiast

<? print(date("Y")); ?>

Działa dla mnie (pokazuje bieżący rok i nie więcej pokazuje komunikat o błędzie). (Thanks to Chris above)

 18
Author: Susan Taunton,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-02 21:09:22

Jeśli to nie są Twoje opcje

  • modyfikowanie php.ini.
  • dodanie date_default_timezone wywołanie.

Zamiast date możesz użyć gmdate.

Użyłem gmdate( "Y" ) kiedy potrzebowałem roku na fragment praw autorskich.

 15
Author: Chris,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-10 04:04:55

Jeśli używasz CodeIgniter i nie możesz zmienić php.ini, dodałem następujący tekst na początku indeksu.php:

date_default_timezone_set('GMT');
 14
Author: Jose,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-04 05:11:02

Zawsze trzymam tę linię wewnątrz korzenia codeignitera index.php. tak aby mój kod działał na dowolnym serwerze

date_default_timezone_set('Asia/Dhaka');

Lista obsługiwanych stref czasowych

 13
Author: Shaiful Islam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-16 00:26:39

@Justis wskazał mi właściwy kierunek, ale jego kod nie działał na mnie. This did:

// set the default timezone if not set at php.ini
if (!date_default_timezone_get('date.timezone')) {
    // insert here the default timezone
    date_default_timezone_set('America/New_York');
}

Dokumentacja: http://www.php.net/manual/en/function.date-default-timezone-get.php

To rozwiązanie nie tylko dla tych, którzy nie mają pełnego dostępu do systemu. Jest to konieczne dla każdego skryptu, gdy dostarczasz go komukolwiek innemu, ale nie tobie. Nigdy nie wiadomo, na jakim serwerze skrypt zostanie uruchomiony, gdy przekażesz go komuś innemu.

 11
Author: John Linhart,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-16 13:25:49

Ten problem męczy mnie od jakiegoś czasu, gdy próbuję wstrzyknąć "createbucket.PHP " skrypt do composera i ciągle mówi mi, że moja Strefa czasowa jest nieprawidłowa.

W końcu jedyną rzeczą, która naprawiła problem było: $ sudo nano /etc/php.ini

Szukaj strefy czasowej

[Date]
; Defines the default timezone used by the date functions
; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone
date.timezone = UTC

Upewnij się, że usuniesz ;

Then finally

$ sudo service httpd restart

I będzie dobrze:)

 5
Author: T0mmyKn1fe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-30 15:29:15

Musiałem umieścić to w podwójnych cudzysłowach.

date_default_timezone_set("America/Los_Angeles"); // default time zone
 5
Author: nocturnalact,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-04 05:11:32

Możesz ustawić strefę czasową w pliku .htaccess

php_value date.timezone UTC
 3
Author: Alexander Lindquist,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-18 22:58:11

Oprócz ustawienia daty.timezone = jak wspomniano w kilku odpowiedziach, Znalazłem błąd w php.plik ini, który uniemożliwiał dotarcie do daty.Strefa czasowa. Sposób znalazłem to było uruchamianie php z linii poleceń w terminalu. spowodowało to zgłoszenie błędu na linii 114. W moim przypadku miałem niezastosowane ustawienie do wyświetlania błędów, które miały " | " między wartościami 2. Nie podobało mu się to. Usunąłem jedną z wartości i / i wszystko było dobrze po tym

 2
Author: M Graham,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-04 02:44:51

Prosta metoda dla dwóch stref czasowych.

<?php 
$date = new DateTime("2012-07-05 16:43:21", new DateTimeZone('Europe/Paris')); 

date_default_timezone_set('America/New_York'); 

echo date("Y-m-d h:iA", $date->format('U')); 

// 2012-07-05 10:43AM 
?>
 1
Author: Saurabh Chandra Patel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-18 04:07:22
<? date_default_timezone_set('Europe/Istanbul'); ?>

Dla php (lub Twojej lokalizacji).

 1
Author: Mehmet Şerif Çaçan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-01-19 00:09:26

Szybkim rozwiązaniem jest wyłączenie zgłaszania błędów w pliku index.php:

Wstaw poniższy wiersz do indeksu .php poniżej define( ‘_JEXEC’, 1 );

error_reporting( E_ERROR | E_PARSE | E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR |
E_COMPILE_WARNING );
 0
Author: Elise Oertli,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-05 13:42:16

[7]}hostuję moje wiadro EC2 i S3 w regionie US-west-2 (Oregon). Kiedy wywoływałem $s3client->listBuckets(), aby wyświetlić listę istniejących bucketów w moim php, otrzymywałem wyjątek - "Uncaught exception 'Exception' with message 'DateTime::__construct(): It is not safe to rely on the system's timezone settings...". Zrobiłem poniżej zmiany, aby to działało. Dzielenie się tymi szczegółami na wypadek, gdyby ktoś napotkał podobny problem i żadna z powyższych odpowiedzi nie pomogła.

  1. na podstawie dokumentacji @ AWS Konfigurowanie Network Time Protocol (NTP) , potwierdziłem, że status usługi ntpd jest w porządku, uruchamiając komendę ntpstat. Jeśli pojawi się błąd, to link pomaga Ci wiedzieć, co jest nie tak.
  2. otworzył /etc / php.plik ini (niektóre mogą mieć go w innej ścieżce w zależności od wersji zainstalowanego php) i okazało się, że date.timezone nie został ustawiony na żadną wartość, a także był domyślnie komentowany. Usunąłem komentarz usuwając '; ' przed tą linią i ustawiłem jego wartość na "UTC" i zapisałem plik.
  3. uruchomione ponownie demony http i ntp przy użyciu komend sudo service httpd restart i sudo service ntpd restart.

Po tym jestem w stanie z powodzeniem wymieniać wiadra bez żadnego wyjątku. Mam nadzieję, że to pomoże.

 0
Author: Maruti C,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-26 07:49:22

Jeśli używasz Plesk, spróbuj, najpierw otwórz ustawienia PHP, na dole strony Zmień datę.Strefa czasowa od domyślnej do UTC.

Tutaj wpisz opis obrazka

Tutaj wpisz opis obrazka

 0
Author: Latief Anwar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-18 18:58:38

Miałem ten błąd uruchamiając php-fpm w więzieniu chroot. Próbowałem stworzyć etc / php.ini I / usr / share / zoneinfo w katalogu chroot, ale to po prostu nie działa. Próbowałem nawet uruchomić demony php-fpm, żeby zobaczyć, jakiego pliku brakuje-nic nie wyskoczyło.

Więc jeśli Google cię tu sprowadzi, ponieważ dostajesz ten błąd podczas używania PHP-fpm skonfigurowanego dla chroot, prawdopodobnie możesz go naprawić, dodając tę linię do /etc/php-fpm.d/www.conf w sekcji ENV:

env[TZ] = America/New_York

Restart php-fpm jest normalnie wymagane, aby stało się skuteczne. Mam nadzieję, że to komuś pomoże.

 0
Author: Don Law,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-12 02:01:35

W moim konkretnym przypadku mam skonfigurowany PHP do używania PHP-FPM (FastCGI Process Manager). Podczas wykonywania phpinfo() z CLI zobaczyłem poprawną strefę czasową, którą ustawiłem w php.ini, jednak nadal był nieprawidłowy w przeglądarce i powodował awarię mojego kodu. Po prostu musiałem ponownie uruchomić php-fpm usługę na serwerze.

service rh-php56-php-fpm restart

Może być również konieczne ponowne uruchomienie usługi httpd, Jeśli edytowałeś php.ini

service httpd restart
 0
Author: EternalHour,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-26 02:37:10

Ta odpowiedź powyżej z CtrlX jest poprawną odpowiedzią, ale może nie działać całkowicie. Dodałem ten wiersz do mojego php.ini plik:

date.timezone = "America/Los_Angeles"

Ale nie usunął błędu PHP dla wszystkich moich plików, ponieważ niektóre z moich skryptów PHP znajdują się w podfolderach. Więc musiałem edytować .htaccess plik do konfiguracji php.ini używane rekurencyjnie (w podfolderach):

suphp_configpath /home/account_name/public_html

Gdzie account_name to nazwa Twojego konta cpanel, a public_html to folder twojego php.plik ini jest do środka.

 0
Author: Jeff Baker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-03 21:56:58

Dla użytkownika docker: Utwórz lokalną strefę czasową.plik ini w Twoim projekcie, ustaw config w docker-compose.yml,

    volumes:
        - "./docker/config/timezone.ini:/usr/local/etc/php/conf.d/timezone.ini"
Strefa czasowa.ini
    date.timezone=Australia/Sydney
 0
Author: Jin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-25 00:04:06

Jeśli nie masz dostępu do pliku php.ini, Utwórz lub edytuj plik .htaccess w katalogu głównym Twojej domeny lub sub i dodaj go (wygenerowany przez cpanel):

<IfModule mime_module>
AddType application/x-httpd-ea-php56 .php .php5 .phtml
</IfModule>

<IfModule php5_module>
php_value date.timezone "America/New_York"
</IfModule>

<IfModule lsapi_module>
php_value date.timezone "America/New_York"
</IfModule>
 0
Author: user3724176,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-07-25 02:04:36

Istnieją dwie opcje rozwiązania tego

Najpierw zmień na php.plik ini i ustaw domyślną strefę czasową

date.timezone = "America/New_York"

Raz Ustawiłeś strefę czasową w php.ini restart serwera

Po Drugie, Zmień czas wykonywania przypisywanie strefy czasowej w zależności od potrzeb

date_default_timezone_set('America/New_York');
 0
Author: Nikunj K.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-03-05 07:44:06

Na stronie połączenia umieść kod w ten sposób date_default_timezone_set("Africa/Johannesburg"); Na podstawie bieżącej lokalizacji.

 -1
Author: CuteDevIT,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-05-10 01:41:39