gpt4 book ai didi

php - UTC 问题,不知道如何解决它们(PHP/MySQL)

转载 作者:行者123 更新时间:2023-11-29 15:09:59 24 4
gpt4 key购买 nike

我在服务器上的所有日期/时间字段中看到 UTC 日期和时间,我将其全部追溯到我的网络服务器上的时区设置,采用 UTC 时间...我的问题是如何将这些变成本地用户的日期和时间?所有时间都以 UTC 形式存储在 MySQL 服务器上。

我有用户城市、地区(省/州)和国家/地区。最坏的情况是我想显示 PHP 默认时区的日期和时间。

我该怎么做?

最佳答案

您可以使用此函数,并将用户的位置“Perth, WA, Australia”作为地址传递给它。

您可以让它返回服务器时区和默认 php 时区之间的偏移量,而不是在失败时返回 0。

您可能希望将其存储在 session 变量中,并且仅在变量为空时调用该函数,这将提高页面渲染的速度。

/**
* This function finds the geocode of any given place using the geocoding service of yahoo
* @example getGeoCode("White House, Washington");
* @example getGeoCode("Machu Pichu");
* @example getGeoCode("Dhaka");
* @example getGeoCode("Hollywood");
*
* @param string address - something you could type into Yahoo Maps and get a valid result
* @return int timeZoneOffset - the number of seconds difference between the user's timezone and your server's timezone, 0 if it fails.
*/
function getTimeZoneOffset($address) {
$_url = 'http://api.local.yahoo.com/MapsService/V1/geocode';
$_url .= sprintf('?appid=%s&location=%s',"phpclasses",rawurlencode($address));
$_result = false;
if($_result = file_get_contents($_url)) {
preg_match('!<Latitude>(.*)</Latitude><Longitude>(.*)</Longitude>!U', $_result, $_match);
$lng = $_match[2];
$lat = $_match[1];

$url = "http://ws.geonames.org/timezone?lat={$lat}&lng={$lng}";
$timedata = file_get_contents($url);
$sxml = simplexml_load_string($timedata);
$timeZoneOffset = strtotime($sxml->timezone->time) - time();
return $timeZoneOffset;
}
else
return 0;
}

代码改编自Time Engine ,一个 LGPL php 类。

关于php - UTC 问题,不知道如何解决它们(PHP/MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1010486/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com