繁体   English   中英

用php将时间转换为其他时区

[英]converting a time to a different timezone with php

$ timeposted =“ 7:10 pm”;

该值当前是加拿大时间(魁北克)。 我正在尝试找到一种方法将其转换为法国的时间。 我怎样才能做到这一点 ?

假设您的PHP配置设置为魁北克时间,则可以通过执行以下操作将其转换为法国的时区:

$date = new DateTime('7:10pm', new DateTimeZone('Europe/Paris'));
echo $date->format('Y-m-d H:i:sP');

或者,如果您的服务器未设置为魁北克时区,则可以:

$date = new DateTime('7:10pm', new DateTimeZone('America/Montreal'));

$date->setTimezone(new DateTimeZone('Europe/Paris'));

echo $date->format('Y-m-d H:i:sP');

哪个返回

2013-06-14 01:10:00+02:00 

您可以在此处阅读有关PHP和时区的更多信息: http : //www.php.net/manual/zh/datetime.settimezone.php

使用PHP的date_default_timezone_set()函数。

如果您想将其更改为法国,则可以使用

date_default_timezone_set('Europe/Paris');

可以在此处找到受支持的时区列表: http : //www.php.net/manual/en/timezones.php

可以在此处找到date_default_timezone_set()的功能: http ://php.net/manual/en/function.date-default-timezone-set.php

DateTime :: setTimezone

date_default_timezone_set('America/Los_Angeles');

$datetime = new DateTime('2013-06-13 12:35:23');
echo $datetime->format('Y-m-d H:i:s') . "\n";
$timeEurope = new DateTimeZone('Europe/London');
$datetime->setTimezone($timeEurope);
echo $datetime->format('Y-m-d H:i:s');
<?php
date_default_timezone_set('America/Los_Angeles');//Your global default timeZone.

function convertTimeZone($oTime, $oTimeZone, $nTimeZone) 
{
//Parameter string $oTime is original time to be converted from in format F-d-Y h:i:s
//Parameter string $oTimeZone is timezone to be conveted from- Timezone of $oTimeZone
//Parameter string $nTimeZone is timezone to be conveted to

date_default_timezone_set($oTimeZone);  //Change default timezone to old timezone within this function only.

$originalTime = new DateTime($oTime);

$originalTime->setTimeZone(new DateTimeZone($nTimeZone)); //Convert to desired TimeZone.

date_default_timezone_set('America/Los_Angeles') ; //Reset default TimeZone according to your global settings.

return $originalTime->format('F-d-Y h:i:s A'); //Return converted TimeZone.
} 

$LATime = convertTimeZone("2011-01-07 19:55:00","America/Chicago", "America/Los_Angeles");

echo $LATime;

?>

您可以使用date_default_timezone_set函数更改date_default_timezone_set时区

date_default_timezone_set('Europe/Paris');

这是我的函数,它需要一个mysql数据库(我已完全存储在UTC中)花费时间,并转换为新时区并对其进行简单格式化。

function changetimefromUTC($time, $timezone) {
    $changetime = new DateTime($time, new DateTimeZone('UTC'));
    $changetime->setTimezone(new DateTimeZone($timezone));
    return $changetime->format('m/d/y h:i a');
}

这是受支持的时区列表http://us1.php.net/manual/en/timezones.php

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM