我在 mySQL 中有时间数据,格式为 %Y-%m-%d %H:%M:%S 作为 UTC +0 格式。我想显示用户正在使用的本地计算机的时间数据调整。
例如:数据是 2012-05-29 15:00:00 那么时间应该以东部时间 2012-05-29 11:00:00(应用夏令时,UTC -4 小时)和西海岸向用户显示应该显示 2012-05-20 08:00:00 (URC -7hour)
任何用于转换的脚本?PHP 或 Javascript 都不错。谢谢!
我在 mySQL 中有时间数据,格式为 %Y-%m-%d %H:%M:%S 作为 UTC +0 格式。我想显示用户正在使用的本地计算机的时间数据调整。
例如:数据是 2012-05-29 15:00:00 那么时间应该以东部时间 2012-05-29 11:00:00(应用夏令时,UTC -4 小时)和西海岸向用户显示应该显示 2012-05-20 08:00:00 (URC -7hour)
任何用于转换的脚本?PHP 或 Javascript 都不错。谢谢!
使用 UTC 在内部存储所有日期,然后为每个用户设置:
if ( $_SESSION['user_timezone'] ) date_default_timezone_set($_SESSION['user_timezone']);
如果您想勇敢并且您的用户是基于互联网的(而不是像我的大多数人那样使用 VPN),您可以使用定位服务查找他们的位置。
我为每个用户存储这个,然后让他们选择。
生成时区列表以呈现给用户的简单方法:
echo '<select id="userTimezone" onChange="some_ajax_function">
<option value="">Please select your Timezone</option>';
foreach (DateTimeZone::listIdentifiers() as $value )
{
if ( $_SESSION['user_timezone'] == $value )
{
$output .= '<option value="' . $value . '" selected="selected">' . htmlentities($value) . '</option>';
}
else
{
$output .= '<option value="' . $value . '">' . htmlentities($value) . '</option>';
}
}
$output .= '</select>';