我正在尝试将时间从我的默认站点时间(即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的时候,我做错了什么
答案 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
时,它只会格式化字符串。