0

我有一个从 php 文件在 linux 上运行的 sql 脚本,该文件总是比我们提前 2 小时返回时间。linux 机器在本地运行,当我在 shell 中执行“日期”时,它会返回正确的时间。任何想法为什么我会提前 2 小时返回 CURTIME?

即使我跑

echo date('Y-m-d H:i:s'); 
echo date('Y-m-d H:i:s', mktime());  

echo exec('date');

一切都在呼应正确的时间,对我来说现在是

2013-08-27 12:44:52

2013-08-27 12:44:52

2013 年 8 月 27 日星期二 12:44:52 PDT

但无论我做什么,它都会在 14:44:52 插入 mysql db

4

1 回答 1

1

来自Mysql:

该值以当前时区表示。

如果您希望它显示在您的时区中,您需要将其转换为您想要执行类似文档的 timzeone :

select convert_tz(now(), @@global.time_zone, '-5:00'); 
select date(convert_tz(now(), @@global.time_zone, '-5:00')); 
select time(convert_tz(now(), @@global.time_zone, '-5:00'));

# The second value gets the time of the server so it knows what to convert from.

# The third value is your timezone you want to display
# It can either be an offset, or name (if table is installed): 
# 'UTC', 'PST', 'MET', and so on
于 2013-08-27T17:15:46.480 回答