Как преобразовать время GMT в IST?

Здесь я получаю время по Гринвичу следующим образом.

1520489880

Теперь я получаю это как

$myfinaldate = gmdate("d M H:i", $strtoDate);

Так что это вернет мне GMT time. Теперь я хочу преобразовать его в IST (индийское стандартное время).

где я застрял, когда пытался

//Set timezone to india
date_default_timezone_set('Asia/Kolkata');
echo date('Y-m-d H:i:s');  

Но это возвращает мне текущее время, а не время, которое я получаю в strtotime


person Community    schedule 08.03.2018    source источник
comment
Вы видели этот ответ? stackoverflow.com/questions/13216185/php-converting-gmt -to-ist   -  person Ken Sawyerr    schedule 08.03.2018
comment
Да, очевидно .. См. Я обновил вопрос.   -  person    schedule 08.03.2018
comment
Ответ @Sorak теперь должен решить вашу проблему   -  person Ken Sawyerr    schedule 08.03.2018


Ответы (3)


Вам нужно передать метку времени:

date_default_timezone_set('Asia/Kolkata');
echo date('d M H:i', $strToDate); // where $strToDate is 1520489880

Выдаст следующее значение:

08 Mar 11:48
person sorak    schedule 08.03.2018
comment
Так что нет смысла использовать gmdate("d M H:i", $strtoDate) ?? - person ; 08.03.2018
comment
конечно, они одинаковые - person sorak; 08.03.2018
comment
Может быть, это не тот @sorak. date заключается в том, что возвращаемое время является вашим часовым поясом. и gmdate заключается в том, что возвращаемое время является средним временем по Гринвичу (GMT). - person TarangP; 08.03.2018
comment
О, я имел в виду использование переменной. Да, вам нужно установить часовой пояс на Калькутту, а gmdate неявно устанавливает его неправильно. - person sorak; 08.03.2018

Вы можете преобразовать время по Гринвичу в время IST, используя следующие способы:

1.

echo date('Y-m-d H:i:s',strtotime('+330 minutes', 0));

2.

date_default_timezone_set('Asia/Kolkata');
echo date('Y-m-d H:i:s');
person Hiren Makwana    schedule 08.03.2018

Изменение часового пояса по умолчанию — не такая уж хорошая идея. Используйте класс DateTime, вам больше не нужно беспокоиться о часовом поясе по умолчанию...

$dt = new DateTime("@$strToDate");
$dt->setTimezone(new DateTimezone('Asia/Kolkata'));
echo $dt->format('Y-m-d H:i:s');

демонстрация

person Glavić    schedule 08.03.2018