2013-08-27 4 views
0

У меня есть скрипт sql, работающий на Linux из файла php, который всегда возвращает время на 2 часа вперед. Ящик linux работает здесь локально, и когда я делаю «дату» в оболочке, он возвращает правильное время. Любые идеи, почему я вернусь CURTIME на 2 часа вперед?CURTIME возвращается на 2 часа вперед, независимо от того, что

Даже если я бегу

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

вт 27 августа 12:44:52 PDT 2013

, но независимо от того, что я делаю это не вставляет в MySQL БД на 14:44:52

+2

что ваша PHP по умолчанию часовой пояс установлен? –

+0

Предположительно это время возвращения в UTC (http://en.wikipedia.org/wiki/Coordinated_Universal_Time). –

+0

date_default_timezone_set ('America/Los_Angeles'); –

ответ

1

От Mysql:

Значение выражается в текущей временной зоне.

Если вы хотите, чтобы отобразить в вашем часовом поясе, вы должны преобразовать его в timzeone вы хотите сделать что-то вроде этого Documentation:

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 
Смежные вопросы