Как конвертировать Unix Timestamp в CET время в PHP? - PullRequest
0 голосов
/ 29 марта 2019

У меня к вам простой вопрос.У меня есть переменная метки времени unix в php, позвольте мне назвать ее $ unix, которая содержит текущую метку времени unix (секунды, прошедшие после 01.01.1970 00:00:00 UTC), которая по определению является временем UTC.Я хочу преобразовать его в строку даты во время CET, например, "29/03/19 14:50".Для меня очень важно иметь формат CET, не меняющийся, когда начинается переход на летнее время.Другими словами, желаемая дата - UTC + 1 вне DST и во время DST, и это должно быть сделано автоматически.Я думал об использовании этой функции:

date_create_from_format ( string $format , string $time [, DateTimeZone $timezone ] )

, поэтому я должен написать что-то вроде:

date_create_from_format ('d/m/y h:i' , $unix, 'CET');

Я не прав?Что не убеждает меня в том, что на этой странице четко написано, что:

Параметр часового пояса и текущий часовой пояс игнорируются, когда параметр времени содержит метку времени UNIX (например, 946684800) или указывает часовой пояс (например, 2010-01-28T15: 00: 00 + 02: 00).

Есть ли способ сделать то, что я хочу?Спасибо!

Ответы [ 2 ]

0 голосов
/ 29 марта 2019

Это должно принести желаемый результат:

date_default_timezone_set( 'CET' );
echo date('d/m/y h:i', $unix );
0 голосов
/ 29 марта 2019

Сначала преобразуйте дату в формате php data time ...

 gmdate("Y-m-d\TH:i:s\Z", $timestamp);

Теперь вы можете отображать дату в PHP времени от UTC до определенного часового пояса.

$date_time_format = $datetime->format('Y-m-d H:i:s');
$time_zone_from="UTC";
$time_zone_to='Asia/Kolkata';
$display_date = new DateTime($date_time_format, new DateTimeZone($time_zone_from));
$display_date->setTimezone(new DateTimeZone($time_zone_to));
echo $display_date->format('d-m-Y H:i:s')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...