Преобразование метки времени Unix в хорошую дату по Гринвичу Переполнение стека

Я хочу получить ФРАНЦУЗСКУЮ ДАТУ GMT по метке времени Unix.
В моей базе данных я сохранил дату в GMT + 0, затем я получил метку времени этой даты и хочу отобразить дату с хорошим GMT + 2

Моя отметка времени: 1461857633 из базы данных и равна: 29/04/2016 12:27:11
И теперь я хочу отобразить эту дату с местным GMT.
Итак, я сделал это:

$timestamp = 1461857633;
$format = 'd/m/Y H:i:s';
$res = date($format, $timestamp);
echo $res;

и у меня та же дата 29/04/2016 12:27:11 где мой часовой пояс хорошо «Европа / Париж»
Обычно я должен иметь эту дату: 29/04/2016 14:27:11

0

Решение

$ timestamp = 1461857633;

$ffectiveDate = strtotime («+ 120 минут», $ timestamp);

$ format = ‘d / m / Y H: i: s’;
$ res = дата ($ формат, $ffectiveDate);

echo $ res;

0

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

Вы можете просто добавить 2 часа к отметке времени или создать объект DateTime и изменить его, добавив к нему 2 часа:

$timestamp = 1461857633 + 2 * 60 * 60;

или же

$dateTime = new DateTime();
$dateTime->setTimestamp(1461857633)->modify('+2 hours');
echo $dateTime->format('d/m/Y H:i:s');

или, другим решением было бы рассчитать секунды между часовым поясом, в который вы хотите конвертировать, и часовым поясом Гринвича (который GMT + 0), например:

$greenwichTimeZone = new DateTimeZone('Greenwich Mean Time');
$parisTimeZone = new DateTimeZone('Europe/Paris');
$dateTimeGreenwich = new DateTime('now', $greenwichTimeZone);

$seconds = $parisTimeZone->getOffset($dateTimeGreenwich);
$dateTime = new DateTime();
$dateTime->setTimestamp(1461857633 + $seconds);
echo $dateTime->format('d/m/Y H:i:s');
0

date_default_timezone_set("UTC");
$HUTC = date("h");

date_default_timezone_set("Europe/Paris");
$HParis = date("h");

$diff = $HParis - $HUTC;

$timestamp = 1461857633;
$timestamp = 1461857633 + $diff * 60 * 60;
$format = 'd/m/Y H:i:s';
$res = date($format,$timestamp);
echo $res;

Это будет работать как летом, так и зимой

0
По вопросам рекламы [email protected]