Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Unix时间戳转换为正确的GMT日期PHP_Php_Date_Datetime_Unix_Gmt - Fatal编程技术网

将Unix时间戳转换为正确的GMT日期PHP

将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; 我的日期

我想从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;
我的日期是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;