Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Наследование коррекции времени (пояса)

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Roni
Отправлено: 19 Декабря, 2011 - 06:36:41
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




Цель иметь некую глобальную переменную $usertimec в которой будет хранится коррекция по времени, часовому поясу. Чтобы при выводе добавлять ее к time().

1. Стоит ли делать как бы главный класс от которого будут наследовать остальные, и в каждом вызывать конструктор родителя, в котором высчитывает поправка по времени
2. Если в Main классе в конструкторе:
$this->db = Database::singleton();
Что лучше: наследовать $db и вызывать родительский конструктор, или в каждом классе вызывать $this->db = Database::singleton() ?


PHP:
скопировать код в буфер обмена
  1. class Database{
  2.         function singleton(){}
  3. }
  4.  
  5. class Main{
  6.         const SRVTIMEC=6;
  7.         private $usertimec;
  8.         private $db;
  9.         function __construct(){
  10.                 //$this->db = Database::singleton();
  11.                 //$this->usertimec=...;
  12.                 $this->timec=3600*(self::SRVTIMEC+$this->usertimec);
  13.  
  14.         }
  15. }
  16.  
  17. class Status extends Main{
  18.         function __construct(){
  19.                 //$this->db = Database::singleton();
  20.                 parent::__construct();
  21.         }
  22. }
 
 Top
DeepVarvar Супермодератор
Отправлено: 19 Декабря, 2011 - 07:10:40
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




У вас DB уже синглтон, зачем плодить ссылки на него в каждом классе, если он и так везде глобально доступен?
Для меня странно что вы решили всунуть поправку времени в класс DB.
Timezone определяется не для базы данных, а для пользователя - это его персональные настройки.
И никаким боком к базе данных не относится. Это база прогибается корректируя результат расчета со временем.
 
 Top
Okula
Отправлено: 19 Декабря, 2011 - 10:35:15
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




Было бы целесообразнее указать временной сдвиг в базе (+ час или - час), а уже потом по временным зонам раскидывать.
 
 Top
Roni
Отправлено: 19 Декабря, 2011 - 11:22:44
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




Okula пишет:
Было бы целесообразнее указать временной сдвиг в базе (+ час или - час), а уже потом по временным зонам раскидывать.
Это как? По UTC/GMT сервер выдает "минус 6"
 
 Top
Okula
Отправлено: 19 Декабря, 2011 - 17:06:32
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




Например в базу записывать смещение времени в настройках у пользователя, а самому пользователя задавать временную зону уже с указанием его персональных настроек.
PHP:
скопировать код в буфер обмена
  1. // пусть переменная $tzone берётся из базы банных
  2. $tzone = '-3'; // смещение в часах
  3. $timezone = 'Etc/GTM'.$tzone;
  4. $d = new DateTime(date('d-m-Y H:i:s'), new DateTimeZone($timezone));
  5. $dat = $d->format('d-m-Y H:i:s');
  6. var_dump($dat);
  7.  
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB