Перейти к содержимому


Серверное время в WEB-версии программы


Сообщений в теме: 12

#1 Dimdim

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

  • Пользователи
  • PipPipPip
  • 60 сообщений

Отправлено 09 Сентябрь 2010 - 11:46

Здравствуйте!

У нас сервер с программой находится в Москве, а мы в Сибири, и разница в повремени у нас составляет 3 часа.
Когда мы добавляем какое-либо сообщение время указывается Московское т.е. на 3 часа раньше чем у нас. У нас 12-00, а в сообщении пишется 9-00.
Не очень удобно.

Как исправить время, чтобы оно было с поправкой на наш часовой пояс?

#2 CbCoder

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

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 09 Сентябрь 2010 - 12:28

Пока к сожалению никак, в дальнейшем видимо добавим настройку.

#3 Dimdim

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

  • Пользователи
  • PipPipPip
  • 60 сообщений

Отправлено 09 Сентябрь 2010 - 13:20

Может возможно на хостинге настройки как-то серверного времени изменить не затрагивая программу?

#4 CbCoder

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

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 09 Сентябрь 2010 - 13:31

Это вам нужно уточнить у своего хостера, может и возможно.


Как вариант можно сделать данное поле вычисляемым, т.е. записывать время не через шаблон "текущее время", а вычислять нужное вам значение через php-код.

#5 Dimdim

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

  • Пользователи
  • PipPipPip
  • 60 сообщений

Отправлено 10 Сентябрь 2010 - 08:23

Просмотр сообщенияРазработчик (9.9.2010, 13:31) писал:

Это вам нужно уточнить у своего хостера, может и возможно.
Как вариант можно сделать данное поле вычисляемым, т.е. записывать время не через шаблон "текущее время", а вычислять нужное вам значение через php-код.

Если не сложно, можете подсказать, какой код нужно написать в вычисляемом поле, чтобы был сдвиг по времени на + 3 часа.

#6 CbCoder

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

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 10 Сентябрь 2010 - 08:56

$cur_rec = data_table("Ваша таблица", "id={ID}");  // считываем текущую запись в массив
if ($cur_rec['Ваше поле с датой'] == "0000-00-00 00:00:00") {  // если поле пустое, то
	$my_time = date("Y-m-d H:i:s", mktime(date("H")+3, date("i"), date("s"), date("m"), date("d"), date("Y")));  // вычисляем тек. время + 3 часа
} else {
	$my_time = $cur_rec['Ваше поле с датой'];  // иначе ничего не меняем
}
return $my_time;  // возвращаем полученный результат


#7 Dimdim

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

  • Пользователи
  • PipPipPip
  • 60 сообщений

Отправлено 10 Сентябрь 2010 - 10:32

Поместил в ВЫЧИСЛЕНИЯ код, но не работает, проверите, пожалуйста, что не так, может еще какие-то строки должны быть (выборка массива из таблицы, или еще что-то), может я в имени таблицы или имени поля, что-то не так написал:

$cur_rec = data_table("cb_data79", "id={ID}");  // считываем текущую запись в массив
if ($cur_rec['f867'] == "0000-00-00 00:00:00") {  // если поле пустое, то 
	$my_time = date("Y-m-d H:i:s", mktime(date("H")+3, date("i"), date("s"), date("m"), date("d"), date("Y")));  // вычисляем тек. время + 3 часа
} else {
	$my_time = $cur_rec['f867'];  // иначе ничего не меняем
}
return $my_time;  // возвращаем полученный результат


#8 CbCoder

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

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 10 Сентябрь 2010 - 10:39

В функции data_table используется имя таблицы в программе, а не ее внутреннее имя в бд. То же и с полями массива, который она возвращает. Собственно для этого она и создана (в целях упрощения программирования)

http://www.clientbas...n_16/php-polya/

#9 Dimdim

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

  • Пользователи
  • PipPipPip
  • 60 сообщений

Отправлено 10 Сентябрь 2010 - 11:11

Изменил код, но ничего не меняется

Код:

$cur_rec = data_table("Доходы", "id={ID}"); // считываем текущую запись в массив
if ($cur_rec['Время'] == "0000-00-00 00:00:00") { // если поле пустое, то
	$my_time = date("Y-m-d H:i:s", mktime(date("H")+3, date("i"), date("s"), date("m"), date("d"), date("Y"))); // вычисляем тек. время + 3 часа
} else {
	$my_time = $cur_rec['Время']; // иначе ничего не меняем
}
return $my_time; // возвращаем полученный результат


#10 CbCoder

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

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 11 Сентябрь 2010 - 13:51

Пришлите бэкап на support@clientbase.ru, проверю что у вас не так. У нас код работает.

#11 Dimdim

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

  • Пользователи
  • PipPipPip
  • 60 сообщений

Отправлено 11 Сентябрь 2010 - 16:10

Отправил Вам бэкап на почту.

#12 CbCoder

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

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 13 Сентябрь 2010 - 08:21

Значение по умолчанию (текущее время) надо выключить. Иначе код не работает по причине не пустого значения поля.

#13 Dimdim

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

  • Пользователи
  • PipPipPip
  • 60 сообщений

Отправлено 13 Сентябрь 2010 - 09:41

Спасибо. Все заработало :rolleyes: !





Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных