将Unix时间戳转换为正确的GMT日期PHP
我想从Unix时间戳中获取法国GMT日期。 在我的数据库中,我将日期保存在GMT+0中,然后我得到了该日期的时间戳,并希望显示具有良好GMT+2的日期 从数据库中我的时间戳是:1461857633,它等于:29/04/2016 12:27:11 现在我想用本地GMT显示这个日期。 所以我这样做了:将Unix时间戳转换为正确的GMT日期PHP,php,date,datetime,unix,gmt,Php,Date,Datetime,Unix,Gmt,我想从Unix时间戳中获取法国GMT日期。 在我的数据库中,我将日期保存在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; 我的日期
$timestamp = 1461857633;
$format = 'd/m/Y H:i:s';
$res = date($format, $timestamp);
echo $res;
我的日期是2016年4月29日12:27:11,我的时区是“欧洲/巴黎”
通常我应该有这个日期:29/04/2016 14:27:11您可以简单地在时间戳上添加2小时,或者您可以创建一个DateTime对象,并通过添加2小时来修改它:
$timestamp = 1461857633 + 2 * 60 * 60;
或
或者,另一种解决方案是计算要转换到的时区与格林威治时区(GMT+0)之间的秒数,如:
$timestamp=1461857633 $effectiveDate=strottime(“+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;
这将适用于夏季和冬季时间
date\u default\u timezone\u set(“欧洲/巴黎”)代码>?在我看来,你应该从你的答案中删除关于增加两个小时的部分。在冬天,和格林尼治标准时间只有一个小时的差距。。我没看到答案的两部分都是两个多小时。
$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');
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;