Я использую следующий оператор INSERT:
INSERT INTO messages SET `to` = '".$to."', `from` = '".$this->userid."', `title` = '".$title."', `message` = '".$message."', `created` = NOW()
Тем не менее, он использует мое время сервера (Америка / Монреаль). Я хочу часовой пояс Азии (Азия / Калькутта)
Возможно ли это с тем же запросом?
Вы бы хотели использовать CONVERT_TZ()
в MySQL. Он основан на базе данных Olson, которую использует ваша операционная система.
Вот документация.
После того как вы откроете соединение с MySQL, запустите в качестве запроса следующее:
SET time_zone = timezone;
Затем все выполняемые вами функции будут выполняться для этого часового пояса для этого соединения (т.е. до тех пор, пока вы не закроете «ссылку» на базу данных ».
Если у вас есть соответствующие разрешения, вы можете заблокировать его «постоянно» / глобально. Строки Tiemzone являются стандартными строками, как в вашем вопросе.
http://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html
$myDateTime = new DateTime('2012-05-23 17:01', new DateTimeZone('GMT')); $myDateTime->setTimezone(new DateTimeZone('Asia/Kolkata')); echo $myDateTime->format('Ymd H:i');
После внесения изменений в вышеуказанный код, например, желаемого формата; вы можете использовать переменную $myDateTime
для вставки в базу данных.