2016-05-09 5 views
0

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

Моя отметка времени: 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 где, как мой часовой пояс хорошо «Европа/Париж» Normaly я должен иметь эту дату: 29/04/2016 14:27:11

+0

'date_default_timezone_set ('Europe/Paris');'? –

ответ

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

На мой взгляд, вы должны удалить часть о добавлении двух часов от вашего ответа. В зимнее время разница в GMT составляет всего лишь час. – Andreas

+0

Ох .. не видел, что обе части ответа составляли около двух часов плюс. – Andreas

0

$ Отметка времени = 1461857633;

$ effectiveDate = strtotime ("+ 120 минут", $ timestamp);

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

echo $ res;

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; 

Это будет работать как летнее и зимнее время

 Смежные вопросы

  • Нет связанных вопросов^_^