PHP中的时区
我有一个关于从PHP用户那里获取时区的问题。我正在服务器上获取用户数据。在该用户数据中,我获得了UTC的用户日期和时间,UTC是默认时区 例如,如果用户在上午11:43左右发送数据,那么在我看来,它将转换为UTC,并获得类似上午6:13(UTC+5:30)的时间。如果用户在上午9:13左右发送数据,那么它将在上午6:13(UTC+3:00)发送。我希望用户时间在他们的终端,即他们的时区。结论是当我们不知道用户的时区时,需要得到本地时间 我尝试了很多方法,比如DateTimeZone和date\u default\u timezone\u set()和date\u default\u timezone\u get()。 请帮我解决这个问题。提前谢谢PHP中的时区,php,Php,我有一个关于从PHP用户那里获取时区的问题。我正在服务器上获取用户数据。在该用户数据中,我获得了UTC的用户日期和时间,UTC是默认时区 例如,如果用户在上午11:43左右发送数据,那么在我看来,它将转换为UTC,并获得类似上午6:13(UTC+5:30)的时间。如果用户在上午9:13左右发送数据,那么它将在上午6:13(UTC+3:00)发送。我希望用户时间在他们的终端,即他们的时区。结论是当我们不知道用户的时区时,需要得到本地时间 我尝试了很多方法,比如DateTimeZone和date\u
if(typeof Intl==“object”和&typeof new Intl.DateTimeFormat().resolvedOptions==“function”和&typeof new Intl.DateTimeFormat().resolvedOptions().timeZone==“string”)
{
t=new Intl.DateTimeFormat().resolvedOptions().timeZone;
}
设置时区='-05:00'
),为HTTP POST请求使用UTC/GMT(设置时区='+00:00'
)
您必须将其本地时间与数据一起发送。在服务器中发送此数据PHP无法可靠地确定浏览器的时区,因为这不是HTTP协议的一部分。您需要通过IP地址数据库或编写一些客户端JavaScript代码来提交信息。
function date_output($date, $format, $strtotime = '', $tz = true)
{
date_default_timezone_set('UTC');
if (ctype_digit($date)) {$dt = new DateTime(date('Y-m-d H:i:s', $date));}
else {$dt = new DateTime($date);}
if ($tz)
{
try
{
if (isset($_SESSION['time_zone']) && strlen($_SESSION['time_zone']) > 0) {$dt->setTimezone(new DateTimeZone($_SESSION['time_zone']));}
else if (isset($_SESSION['time_zone_offset'])) {$tz = new DateTimeZone(($_SESSION['time_zone_offset'] * 36));}
}
catch (exception $e) {}//etc
}
if (strlen($strtotime) > 0) {$dt->modify($strtotime);}
return $dt->format($format);
}
echo user_date_class($row1['date'], 'l F jS, Y, h:iA');