У меня есть следующий код:
$date = new DateTime(date("Ymd H:i:s"), new DateTimeZone('Asia/Karachi')); echo $date->format('Ymd 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('dmY 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, который в основном позже загружает остальную часть фреймворка.