2016-04-22 3 views
1

У меня проблема с преобразованием PHP strtotime в другой часовой пояс. Мой код прост:PHP strtotime timezone

<?php 
date_default_timezone_set("Europe/Bratislava"); 
echo date("H:i",strtotime("20:00 America/New_York")); 
?> 

Этот код возвращается: 02:00. Но он должен вернуться в 14:00.

Можете ли вы помочь мне, пожалуйста, исправить это?

+2

это правильно ... –

+0

Что произойдет, если вы добавите «Y m d» к дате? Возможно, он читает 20:00 как что-то еще – Andreas

ответ

10

Этот код возвращается: 02:00. Но он должен вернуться в 14:00.

Нет, это правильно. Вы конвертируете с 8 вечера в Нью-Йорк (в настоящее время UTC-4 из-за DST) в часовой пояс Европа/Братислава (в настоящее время UTC + 2 из-за DST).

Итак:

New York: 8pm 
UTC:  Midnight 
Bratislava: 2am 

Если вы пытаетесь конвертировать из то время Европа/Bratislava в время в Нью-Йорке, то вам необходимо переключить часовой пояс ID.

+0

Нью-Йорк - UTC-5, а Братислава - UTC + 1 –

+2

@MateiMihai: Не летом. DST добавляет час каждому из них. –

+0

Спасибо за ответ, я хочу изменить с BRATISLAVA на NEW YORK, как это сделать, пожалуйста? –