У меня есть следующий код:
$date = new DateTime(date("Y-m-d H:i:s"), new DateTimeZone('Asia/Karachi'));
echo $date->format('Y-m-d H:i:s');
Выход: 2015-08-26 17:46:05
Фактический результат должен быть: 2015-08-26 13:46:05
Как установить часовой пояс, чтобы фактический выход пришел?
используйте эту строку в ваших кодах
date_default_timezone_set("Asia/Karachi");
лайк
<?php
date_default_timezone_set("Asia/Karachi");
echo date('d-m-Y H:i:s');
?>
Метод 1 (редактирование Php.ini)
1) Откройте файл php.ini
2) Добавьте следующую строку кода в начало вашего файла php.ini.
date.timezone = "Asia/Karachi"
3) Перезапустите php.
Примечание. Вы можете найти список часовых поясов здесь: http://php.net/manual/en/timezones.asia.php
Способ 2 (Использование date_default_timezone_set)
Если у вас нет доступа к php.ini
файл, вы можете использовать date_default_timezone_set("Asia/Karachi")
, Просто поместите его в точку входа вашего приложения.
http://php.net/manual/en/function.date-default-timezone-set.php
Лучше сохранить его в файле конфигурации, потому что даже если вы используете ту же функцию где-то еще, вам придется повторно объявить этот оператор.
date_default_timezone_set("Asia/Karachi");
Если вы используете какой-либо фреймворк, такой как yii, CI или cake php., Сохраните эту строку в файле index.php, который в основном позже загружает остальную часть фреймворка.