2012-05-23 7 views
5

Я использую следующий INSERT заявление:MySQL сейчас() изменение часового пояса

INSERT INTO messages SET `to` = '".$to."', `from` = '".$this->userid."', `title` = '".$title."', `message` = '".$message."', `created` = NOW() 

Однако, он использует свое время сервера (America/Монреаль). Я хочу часовой пояс в Азии (Азия/Калькутта)

Возможно ли это с тем же запросом?

ответ

6

Вы бы хотели использовать функцию CONVERT_TZ() в MySQL. Он основан на Olson database, который использует ваша операционная система.

Here - документация.

+0

HI ТНХ, НО НЕ РАБОТАЕТ "INSERT INTO сообщений SET' в' = «".. $ К "',' от' =" $ this-> userid. ",' title' = '". $ title."', 'message' = '". $ message. "',' created' = CONVERT_TZ (NOW(), 'America/Phoenix', «Азия/Калькутта») – Harinder

+0

Сделайте подзаголовок на созданном, SELECT CONVERT_TZ (сейчас(), 'US/Eastern', 'US/Central'); – wesside

+0

Скорее, вам может понадобиться заполнить таблицы часовых поясов, ref: http://stackoverflow.com/questions/2523286/mysql-convert-tz mysql_tzinfo_to_sql/usr/share/zoneinfo | mysql -u root mysql – wesside

0
$myDateTime = new DateTime('2012-05-23 17:01', new DateTimeZone('GMT')); 
$myDateTime->setTimezone(new DateTimeZone('Asia/Kolkata')); 
echo $myDateTime->format('Y-m-d H:i'); 

После модификации вышеуказанного кода, такого как желаемый формат; вы можете использовать переменную $myDateTime для вставки в базу данных.

6

После открытия соединения с MySQL, выполните следующее в качестве запроса:

SET time_zone = timezone; 

Тогда все функции, которые вы делаете будет работать для этого часового пояса для этой связи (то есть до тех пор, пока не будет закрыто «связь» на база данных».

Если у вас есть соответствующие разрешения, которые вы можете заблокировать его„навсегда“/ globaly. Tiemzone строки представляют собой стандартные строки, как у вас есть в вашем вопросе.

http://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html

+0

Часовой пояс "+7: 00" – BSQ

0

Лучше использовать формат SQL непосредственно в запросе:.

..`created` = CONVERT_TZ(NOW(),'SYSTEM','Asia/Calcutta').. 
Смежные вопросы