问题1)
假设用户在我的应用程序中将时区设置保存为“America / New_York”,我是否会在需要的页面上使用此设置
显示时区偏移和夏令时的正确时间
<?php
$time_zone = 'America/New_York';
date_default_timezone_set($time_zone);
echo date('D,F j, Y, h:i:s A');
?>
或者我应该使用更像这种方法的东西 当我查询我的数据时,我使用以下PHP脚本
<?PHP
while($row = mysql_fetch_array($registration)){
$dt_obj = new DateTime($row['message_sent_timestamp']." UTC");
$dt_obj->setTimezone(new DateTimeZone('America/New_York'));
echo $formatted_date_long=date_format($dt_obj, 'Y-m-d H:i:s'); }
?>
答案 0 :(得分:3)
我更喜欢根据输出上的用户首选项显式设置日期格式,而不是为整个执行脚本设置默认时区。这样可以更容易地处理日期,例如UTC,默认情况下,用于保存数据或计算已用时间等操作。
您可以轻松编写考虑用户时区的日期格式化功能/方法。我通常加载一次用户时区,然后在每个后续日期格式化调用中访问缓存的时区。这种快速方法可以防止我以错误的时区格式无意中使用或保存数据。