如何转换时间PHP,以便它将PT转换为CT

时间:2017-07-28 17:05:32

标签: php mysql sql datetime

我正在尝试将时间从我的默认站点时间(即PT)转换为纽约,我只想将其从数据库中拉出来将其转换为我的代码

date_default_timezone_set('America/Los_Angeles') ;
$site_time = date("H:i:s",time()) ;

这会在PT中插入时间

$insert_chat = mysqli_query($conn, "INSERT INTO chat (time) VALUES 
'$site_time'" );

$select = mysqli_query($conn, "SELECT time FROM chat") ; 

while ($row = mysqli_fetch_array($select)){

     $chat_time = $row['time'] ;

从数据库中提取PT时间后,我想转换为纽约CT

     date_default_timezone_set('America/New_York') ;

     $user_time = date("h:i A",strtotime($chat_time)) ;

     echo $user_time ; 

但是当我回想起它还在显示PT的时候,我做错了什么

1 个答案:

答案 0 :(得分:1)

使用PHP标准对象的工作解决方案:

$dt = new DateTime(
    '2017-01-01 09:00:00',
    new DateTimeZone('America/Los_Angeles')
);
$dt->setTimezone(new DateTimeZone('America/New_York'));
echo $dt->format("h:i A"); // 12:00 PM

您的代码中发生的事情是$chat_time没有与之关联的时区;它只是一个字符串。致电date_default_timezone_set与此无关。当你致电date时,它只会格式化字符串。