Крупнейшая биржа рекламы в Телеграм
0 Пользователей и 1 Гость просматривают эту тему.
  • 11 Ответов
  • 1521 Просмотров
*

Chifu

  • Захожу иногда
  • 64
  • 5 / 0
В общем, проблема такая... создал переменные в файле "mod_virtuemart_login.php" и соответственно поставил условия для отображения приветствия в зависимости от времени суток.

Код выглядит так (я не мастер php)
Код: php
<?php
$h = date("H");
if ($h>=5&&$h<11) {
echo "greeting 1" . $name . ".";
} elseif ($h>=11&&$h<18) {
echo "greeting 2" . $name . ".";
} elseif ($h>=18&&$h<23) {
echo "greeting 3" . $name . ".";
} elseif ($h>=23&&$h<5){
echo "greeting 4" . $name . ".";
}
?>
Проблема в том, что сам код не совсем правильно работает именно в корзине. Время отстает на 2 часа, да и кроме первого условия другие просто не выполняются. Где устанавливается время в самом VirtueMart я не помню (если вообще устанавливается).


Как исправить данную оплошность, или где настройка времени в VirtueMart? Варианты (установить условия на +2 часа вперед не подходят, это если нету других способов).

Или как можно синхронизировать время с php сервером и прописать правильно условия?
« Последнее редактирование: 31.01.2011, 22:22:19 от Chifu »
*

icom

  • Давно я тут
  • 822
  • 199 / 4
поменяйте
$h = date("H");
на
$h = date("G");
*

Chifu

  • Захожу иногда
  • 64
  • 5 / 0
icom, это не имеет никакого значения. Главное что такой же самый код прописанный в index.php шаблона, работает вроде как правильно и показывает правильное время. Значит проблема именно в "mod_virtuemart_login.php".
*

Chifu

  • Захожу иногда
  • 64
  • 5 / 0
Если прописать так:
Код: php
$datenow = &JFactory::getDate();
$h = $datenow->toFormat("%H");
тогда вообще время будет отставать на 4 часа. Помогите пожалуйста решить задачку :)
*

NightGuard

  • Живу я здесь
  • 2932
  • 378 / 7
  • вжжж-вжжж
А случайно не с часовыми поясами это связанно? В Установках локали (Общие настройки - Сервер - Установки локали) Какой часовой пояс выбран?
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма

skype: nightguardsrussia - только по рабочим вопросам, любые консультации - платные!
*

Chifu

  • Захожу иногда
  • 64
  • 5 / 0
Ну конечно мой пояс +2. Я думал об этом, но сомневаюсь, ибо опять же повторюсь, проблема именно в модуле для VirtueMart, при этом если использовать стандартную PHP функцию date() то время отстает на 2 часа, а если джумловские, то аж на 4 часа.
*

NightGuard

  • Живу я здесь
  • 2932
  • 378 / 7
  • вжжж-вжжж
Так, а +2 от чего?
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма

skype: nightguardsrussia - только по рабочим вопросам, любые консультации - платные!
*

Chifu

  • Захожу иногда
  • 64
  • 5 / 0
(UTC +02:00) Киев ...

Если не то, тогда я не знаю от чего.
« Последнее редактирование: 31.01.2011, 22:34:07 от Chifu »
*

Chifu

  • Захожу иногда
  • 64
  • 5 / 0
Локаль, никак не влияет на этот код, проверенно.
*

NightGuard

  • Живу я здесь
  • 2932
  • 378 / 7
  • вжжж-вжжж
По идее (могу конечно ошибаться) date() берет время сервера.
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма

skype: nightguardsrussia - только по рабочим вопросам, любые консультации - платные!
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Если прописать так:
Код: php
$datenow = &JFactory::getDate();
$h = $datenow->toFormat("%H");
тогда вообще время будет отставать на 4 часа. Помогите пожалуйста решить задачку :)
что есть естественно.
Т.к. берется время сервера и не учитывается локаль.
Код
$datenow = &JFactory::getDate();
echo JHTML::_('date', $datenow, '%H');
или можно просто так
Код
echo JHTML::_('date', null, '%H');
« Последнее редактирование: 31.01.2011, 22:50:44 от SmokerMan »
*

Chifu

  • Захожу иногда
  • 64
  • 5 / 0
SmokerMan, спасибо. Выходит что да, время сервера при этом Локаль тоже учитывается.

Прописал именно так:
Код: php
$h = JHTML::_('date', null, '%H');
Плюс к этому, на локальном сервере в файле php.ini выставил свою временную зону
Код
;date.timezone = "Europe/Kiev"
и в Joomla тоже подставил UTC +02:00.

Всё заработало как надо, но причина не понятна, почему же в "index.php" всё с самого начала показывало правильно, а с "mod_virtuemart_login.php" пришлось немного поломать голову :)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Требуется написать модуль к корзине на VirtueMart

Автор Keeper87

Ответов: 0
Просмотров: 586
Последний ответ 27.11.2014, 02:06:32
от Keeper87
Пропал доступ к корзине покупок и все левое меню VirtueMart 1.1.3

Автор Sergey.Moscow

Ответов: 1
Просмотров: 598
Последний ответ 27.12.2013, 10:39:35
от evgen777
Баг в корзине VirtueMart

Автор BaLTiK

Ответов: 2
Просмотров: 888
Последний ответ 09.10.2013, 18:23:52
от fsv
Вывод доп.информации в зависимости от способа доставки

Автор SolopoV

Ответов: 13
Просмотров: 1522
Последний ответ 29.04.2013, 21:06:37
от fsv
после ввода редиректа с index.php не работает удалить обновить в корзине

Автор holovla

Ответов: 14
Просмотров: 3030
Последний ответ 19.04.2013, 01:44:00
от polyKARP