Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.09.2015, 09:36
Новичок на форуме
Отправить личное сообщение для McCloud Посмотреть профиль Найти все сообщения от McCloud
 
Регистрация: 07.09.2015
Сообщений: 1

Вывод серверного времени на сайте
Всем привет!

Подскажите пожалуйста: как сделать чтобы отображалось время на сайте, при этом, чтобы если задал, например, GMT+6 - то оно и будет всегда показываться, независимо от того, какое время стоит на копьютере у пользователя.

Использую такое решение:

<SCRIPT Language="JavaScript">
function ClockTimeZone() {
  var TimezoneOffset = 6 // указать нужное смещение по Гринвичу
  var localTime = new Date();
  var ms = localTime.getTime() + (localTime.getTimezoneOffset() * 60000) + TimezoneOffset * 3600000;
  var time = new Date(ms); 
  var hour = time.getHours(); 
  var minute = time.getMinutes();
  var second = time.getSeconds();
  var temp = "" + ((hour < 10) ? "0" : "") + hour;
  temp += ((minute < 10) ? ":0" : ":") + minute;
  temp += ((second < 10) ? ":0" : ":") + second;
  document.getElementById('clock').innerHTML = temp;
  setTimeout("ClockTimeZone()",1000);
}
onload = ClockTimeZone;
</SCRIPT>


Однако, при неправильном времени на компьютере пользователя, данный скрипт будет также выводить неправильное время. Как нужно переписать, чтобы он был привязан не ко времени с системы пользователя, а к серверному времени (с корректировкой +/- по GMT) ?

Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 07.09.2015, 09:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,116

McCloud,
нужно время сервера послать при открытии страницы, а потом к этому времени плюсовать время прошедшее с открытия страницы.
Ответить с цитированием
  #3 (permalink)  
Старый 07.09.2015, 16:41
Профессор
Отправить личное сообщение для Эдди Посмотреть профиль Найти все сообщения от Эдди
 
Регистрация: 19.06.2010
Сообщений: 279

Может, не в тему, но если речь о дате и об онлайн заказах, то вот это неплохо:
date_default_timezone_set('Europe/Moscow');

Правильно я делаю, чтобы время было в любой части планеты мое?
Ответить с цитированием
  #4 (permalink)  
Старый 07.09.2015, 17:24
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Эдди
Правильно я делаю, чтобы время было в любой части планеты мое?
В смысле времени сервера?
date_default_timezone_set('Europe/Moscow') это будет временем временем сервера для РНР, но не для SQL.
Ответить с цитированием
  #5 (permalink)  
Старый 08.09.2015, 16:51
Профессор
Отправить личное сообщение для Эдди Посмотреть профиль Найти все сообщения от Эдди
 
Регистрация: 19.06.2010
Сообщений: 279

Сообщение от laimas Посмотреть сообщение
В смысле времени сервера?
date_default_timezone_set('Europe/Moscow') это будет временем временем сервера для РНР, но не для SQL.
Если я не буду использовать sql NOW(), а писать время только через php, то время sql мне не важно ведь?
Есть какие подводные камни?
Ответить с цитированием
  #6 (permalink)  
Старый 08.09.2015, 17:44
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Если не использовать функции sql, которые работают по системному времени, пожалуйста. Но трудно представить запросы, в которых нужно сравнить дату/время с текущей, да еще с интервалами без NOW(). Можно конечно в запрос подставить и полученное от date().
Временная зона обычно доступна для установки через панель конфигурации сервера, то есть date_default_timezone_set(), это мера крайняя. Если нет, то в службу поддержки, они установят желаемую временную зону для сервера.
Если что, что установить временную зону sql можно: SET time_zone = 'Europe/Moscow', или скорректировать локальное время для установленной временной зоны: SET LOCAL time_zone='+hh:mm'.
Ответить с цитированием
  #7 (permalink)  
Старый 09.09.2015, 18:28
Профессор
Отправить личное сообщение для Эдди Посмотреть профиль Найти все сообщения от Эдди
 
Регистрация: 19.06.2010
Сообщений: 279

Сообщение от laimas Посмотреть сообщение
Если не использовать функции sql, которые работают по системному времени, пожалуйста. Но трудно представить запросы, в которых нужно сравнить дату/время с текущей, да еще с интервалами без NOW(). Можно конечно в запрос подставить и полученное от date().
Временная зона обычно доступна для установки через панель конфигурации сервера, то есть date_default_timezone_set(), это мера крайняя. Если нет, то в службу поддержки, они установят желаемую временную зону для сервера.
Если что, что установить временную зону sql можно: SET time_zone = 'Europe/Moscow', или скорректировать локальное время для установленной временной зоны: SET LOCAL time_zone='+hh:mm'.
Мой провайдер (не буду называть) очень крутым себя считает и не идет ни на какие уступки. Сколько я с ними когда-то бился, чтобы позволили увеличить количество переменных в пост-массиве. Меня заверили, что ради меня любимого и моей безопасности они не будут этого делать, и что это вообще невозможно. Очень хотели, чтобы я "купил" виртуальный сервер.
А недавно я в нужную директорию в .htaccess вставил строку php_value max_input_vars 2000 и пофиг мне стал провайдер. . А об этом они умолчали, чтобы я не пробовал, а я поверил и реально не пробовал.
Куда писать SET LOCAL time_zone='+hh:mm' ?
Все же иногда да проскользнет в MySql NOW().
Ответить с цитированием
  #8 (permalink)  
Старый 09.09.2015, 18:38
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Эдди
Куда писать SET LOCAL time_zone='+hh:mm' ?
Запрос делать.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод поисковых запросов гугл на сайте klexxus Общие вопросы Javascript 2 18.02.2015 08:46
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
Вывод времени в нужном часовом поясе demjack Общие вопросы Javascript 1 19.05.2013 21:18
вывод времени php + javascript TTongorovortoto Ваши сайты и скрипты 2 29.10.2011 00:11
Вывод текста по времени Madjahet Элементы интерфейса 15 14.04.2010 17:19