codeigniter — проблема перехода на летнее время (Лондон) в php: CI

Я пытаюсь конвертировать любой часовой пояс в часовой пояс Лондона. На данный момент концепция дневного света не рассматривается.

Когда мое время: 07-04-2016 15:00 В ЛОНДОНЕ ожидается: 07-04-2016 10:30

В моем случае это: 07-04-2016 09:30

Вот мой PHP-код в CI Helper:

function convert_datetime_to_utc_timezone($date, $timezone) {

if ($date != '') {
$ci = & get_instance();
$dformat .= "Y-m-d H:i:s";
$zone = get_list_of_all_timezone();

$user_time_zone = $zone[$timezone];

$convert_date = new DateTime($date, new DateTimeZone($user_time_zone));
$convert_date->setTimeZone(new DateTimeZone('UTC'));
return $convert_date->format('Y-m-d H:i:s');
} else {
return '';
}
}

Замечания: $ user_time_zone = ‘Азия / Калькутта’;

0

Решение

Если вы хотите перевести ваше местное время в лондонское, используйте «Европа / Лондон». Общие часовые пояса, такие как UTC, EST и т. Д., Не учитывают переход на летнее время.

$your_date = date ( 'Y-m-d H:i:s', strtotime ( $your_date ) );

$newyork_time = new DateTime ( $your_date, new DateTimeZone ( 'America/New_York' ) );

$london_time = new DateTime ( $your_date, new DateTimeZone ( 'Europe/London' ) );
3

Другие решения

Если вы хотите использовать лондонское время, установите часовой пояс «Европа / Лондон», а не UTC.

$ php -a
Interactive mode enabled

php > $format = 'd-m-Y H:i A';
php > $input_timezone = 'Asia/Calcutta';
php > $input_datetime = '07-04-2016 03:00 PM';
php > $datetime = DateTime::createFromFormat($format, $input_datetime, new DateTimeZone($input_timezone));
php > $datetime->setTimeZone(new DateTimeZone('Europe/London'));
php > var_dump($datetime->format($format));
string(19) "07-04-2016 10:30 AM"
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector