改变now()函数的时区

时间:2011-09-01 21:06:40

标签: php mysql timezone

我想将我的国家/地区的时间放入我的数据库表中的reg_date字段中。但now()使服务器有时间。如何将now()函数时间更改为阿塞拜疆(UTC +04.00)?

1 个答案:

答案 0 :(得分:5)

NOW()应返回系统上设置的当前时区的时间戳。如果您无法更改系统本身的时区,则可能需要在使用PHP / Ruby /其他方式保存时间之前操作时间,或者您可以选择使用UNIX_TIMESTAMP()以UTC格式保存时间。


使用PHP(5.3+),在INSERT进入数据库之前操作时区的代码可能如下所示:

// .... some preceding stuff

$date = new DateTime();
$date->setTimezone(new DateTimeZone('Asia/Baku'));

$fdate = $date->format('Y-m-d H:i:s'); // same format as NOW()

$query = "INSERT INTO tbl (field, created_on) VALUES ('blah', '$fdate')";
mysqli_query($query);

// ... and so on