调整时区

Ano*_*ous 7 php datetime date

我如何处理存储日期,如2011-01-30 18:23:49,并将其调整到任何选定的时区?是否有一种简单的方法,例如简单地通过缩写定义时区或添加/减去x小时数?基本上我希望用户能够选择他们的时区,并调整此默认日期以适合他们的.

Dan*_*man 7

  1. 让用户选择他们的时区

  2. 使用该区域名称或偏移量date_default_timezone_set来设置在其余脚本执行期间日期函数中使用的默认时区.

  3. 用于date('Z')在几秒钟内从GMT获得该时区的偏移量

  4. 将存储的日期转换为时间戳strtotime- UNIX时间戳始终为GMT,因此您现在可以使用GMT.

  5. 添加步骤3中的偏移量,将该时间转换为用户的时区.

  6. date再次使用将时间戳格式化为所需显示格式的字符串.

例:

$user_timezone = 'America/Los_Angeles';
$stored_time = '2011-01-30 18:23:49';

date_default_timezone_set($user_timezone);
$timestamp = strtotime($stored_time);
$local_timestamp = $timestamp + date('Z');
$local_date = date('Y-m-d H:i:s', $local_timestamp);

echo $local_date;
Run Code Online (Sandbox Code Playgroud)