timezone у пользователя

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Nerf
Сообщения: 780
Зарегистрирован: 2015.01.29, 00:37

Re: timezone у пользователя

Сообщение Nerf » 2017.03.11, 01:23

А как сторонники хранения дат в int(timestamp) относятся к проблеме 2038 и выборкам по дате?)

Аватара пользователя
girmate
Сообщения: 1533
Зарегистрирован: 2015.10.27, 12:52

Re: timezone у пользователя

Сообщение girmate » 2017.03.11, 01:30

Nerf писал(а):
2017.03.11, 01:23
А как сторонники хранения дат в int(timestamp) относятся к проблеме 2038 и выборкам по дате?)
Это не скоро. Потом что-нибудь придумают)) А если выборки имеются те, которые - "оплата после обеда в субботние дни" - то тут SamDark там тоже лаконичный код приводил: viewtopic.php?f=19&t=36434&start=20#p186669
Осторожно! Вы общаетесь с новичком ;)

Nerf
Сообщения: 780
Зарегистрирован: 2015.01.29, 00:37

Re: timezone у пользователя

Сообщение Nerf » 2017.03.11, 02:36

girmate писал(а):
2017.03.11, 01:30
Это не скоро. Потом что-нибудь придумают)) А если выборки имеются те, которые - "оплата после обеда в субботние дни" - то тут SamDark там тоже лаконичный код приводил: viewtopic.php?f=19&t=36434&start=20#p186669
Ну, как бы, уже диапазон дат ограничен. Но это так, холивара ради :lol:

mindochin
Сообщения: 50
Зарегистрирован: 2010.12.13, 20:05

Re: timezone у пользователя

Сообщение mindochin » 2019.01.23, 12:41

аналогичная ситуация. все работает, кроме выборок из базы (выбираются по зоне сервера, а надо по указанной в приложении). если прописать в конфиге db

Код: Выделить всё

...'on afterOpen' => function($event) {
     	$event->sender->createCommand("SET time_zone = '+6:00'")->execute();
	}
то работает как надо.
еще работает если перед запросом выполнить

Код: Выделить всё

$db->createCommand("SET time_zone = '+06:00'")->execute();
но это уже гемор какой-то.
а если где-то в коде прописать (там где получили зону пользователя)

Код: Выделить всё

Yii::$app->db->on('afterOpen', function($event) {
			$event->sender->createCommand("SET time_zone = '+5:00'")->execute();        		
		});
то почему-то не работает. отчего, и как быть?

Аватара пользователя
S c
Сообщения: 875
Зарегистрирован: 2012.04.11, 14:46

Re: timezone у пользователя

Сообщение S c » 2019.01.23, 16:54

Возможно в момент когда вы выполняете этот код, подключение уже открыто? Поэтому в принципе afterOpen event не срабатывает.

Ответить