Вот скрипт, с выходом каждой строки комментария рядом с каждым утверждением, чтобы продемонстрировать мою проблемуPHP настаивает на неверном часовом поясе
<?php
echo date_default_timezone_get(); //Europe/Helsinki
date_default_timezone_set('Africa/Cairo');
$script_tz = date_default_timezone_get();
if (strcmp($script_tz, ini_get('date.timezone'))){
echo "\nScript timezone differs from ini-set timezone."; //True, this block is ran
} else {
echo "\nScript timezone and ini-set timezone match.";
}
echo "\n".date_default_timezone_get(); //Africa/Cairo
echo "\n'".ini_get('date.timezone')."'"; //''
echo "\n".date('Z'); //10800
echo "\n".date("m/d/Y h:i:s A T",strtotime("-1 hour")); //I still have to do this to obtain the correct date !
?>
Я нахожусь в Каире, где мы больше не DST около 3 года. Часовой пояс сервера установлен правильно, а опция DST недоступна для включения или отключения DST. Таким образом, он по своей сути отключен. Вот скриншот, чтобы продемонстрировать
В моей php.ini
файле
[Date]
; Defines the default timezone used by the date functions
;date.timezone =
Мой PHP версия
PHP 5.2.17 (cli) (built: Jan 6 2011 17:28:41)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies
- Даже после того, как я установил свой часовой пояс по умолчанию, почему все равно придется манипулировать
date()
выход (т. уменьшая его на один час), чтобы получить правильное время, соответствующее времени сервера? - И почему он настаивает на том, что
Europe/Helsinki
- это мой часовой пояс? - Может ли это иметь какое-либо отношение к Apache?
Почему бы не установить часовой пояс в php.ini? –
Является ли сервером тот же компьютер Windows, с которого вы показываете скриншоты? – Jon
@ Джон, да. Я даже использую Win7, и внешний вид отличается от других, поэтому я не перепутал –