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

时间:2016-05-09 11:02:39

标签: php date datetime unix gmt

我想从Unix时间戳获取FRENCH GMT DATE。 在我的数据库中,我在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因为我的时区很好'欧洲/巴黎' Normaly我应该有这个日期:29/04/2016 14:27:11

3 个答案:

答案 0 :(得分:0)

您只需将2小时添加到时间戳,或者您可以创建一个DateTime对象并通过向其添加2小时来修改它:

@Input()

$timestamp = 1461857633 + 2 * 60 * 60;

或者,另一个解决方案是计算您想要转换的时区与格林威治时区(GMT + 0)之间的秒数,如:

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

答案 1 :(得分:0)

$ timestamp = 1461857633;

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

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

echo $ res;

答案 2 :(得分: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;

这将适用于夏季和冬季