将Unix时间戳转换为良好的GMT日期PHP


Convert an Unix timestamp to good GMT date PHP

我想从Unix时间戳中获取法语GMT日期。在我的数据库中,我将日期保存为GMT+0,然后我获得了该日期的时间戳,并希望用良好的GMT+2 显示该日期

我的时间戳是:数据库中的1461857633,它等于:2016年4月29日12:27:11现在我想用当地GMT显示这个日期。所以我做了这个:

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

我的日期是2016年4月29日12:27:11,因为我的时区是"欧洲/巴黎"通常我应该有这个日期:2016年4月29日14:27:11

$timestamp=1461857633;

$effectiveDate=strtotime("+120分钟",$timestamp);

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

echo$res;

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;

这将适用于夏季和冬季

您可以简单地在时间戳中添加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');