我使用gmdate PHP函数将当前日期插入数据库,但它显示GMT时间,我可以将其更改为我的时区+3吗?
这是代码
$sql = "INSERT INTO Students
VALUES ('','" . $info[$i]['firstname'] . "', '" . $info[$i]['lastname'] . "',
'" . $info[$i]['sex'] . "', '" . $info[$i]['major'] . "',
'" . $info[$i]['favorite'] . "', '" . $info[$i]['GPA'] . "',
'". gmdate('m/d/Y g:i:s A') . "')" ;
Run Code Online (Sandbox Code Playgroud)
"+3"不是"时区".它是UTC/GMT的偏移量,可能会根据DST设置全年变化.一个时区是像"欧洲/柏林"或"亚洲/东京".
一旦你确定了一个真正的时区:
date_default_timezone_set('Europe/Berlin');
echo date('m/d/Y g:i:s A');
Run Code Online (Sandbox Code Playgroud)
要么
$date = new DateTime('now', new DateTimeZone('Europe/Berlin'));
echo $date->format('m/d/Y g:i:s A');
Run Code Online (Sandbox Code Playgroud)
如果您需要使用的是"+3",那么a)您被搞砸了b)您只需将"3小时"添加到任何时间戳:
date_default_timezone_set('UTC');
echo date('m/d/Y g:i:s A', strtotime("$offset hours"));
echo date('m/d/Y g:i:s A', time() + ($offset * 60 * 60));
$date = new DateTime;
$date->modify("$offset hours");
echo $date->format('m/d/Y g:i:s A');
Run Code Online (Sandbox Code Playgroud)