Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.11.2016, 16:47
Аватар для sovsem-nub
Профессор
Отправить личное сообщение для sovsem-nub Посмотреть профиль Найти все сообщения от sovsem-nub
 
Регистрация: 15.10.2014
Сообщений: 255

Где найти API службы точного времени?
Нужно в статичный движок интернет магазина добавить акции, которые бы запускались по будням с 11 до 15 часов московского времени. Например скидка на продукцию. Для этого мне нужно периодически раз в секунду (минуту) опрашивать чужой сервер (не свой) и получать точное время. Время сервера магазина или время пользователя мне не подходят.
У гугла есть апи времени, но там нужно получать ключ, что неудобно. У яндекса тоже есть часики, но как к ним подключиться непонятно. Прямое обращение к ним дает пустой json [] а с какими параметрами спрашивать нигде не написано

<iframe  frameborder="no" scrolling="no" width="280" height="150" src="https://yandex.com/time/widget/?geoid=213&lang=en&layout=horiz&type=digital&face=serif"></iframe>


Возможно можно получить время у яндекс карт или еще каким-нибудь хитрым, но надежным способом?
Ответить с цитированием
  #2 (permalink)  
Старый 30.11.2016, 06:36
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

sovsem-nub, .../sync.json?geo=213 раз в минуту достаточно...
Ответить с цитированием
  #3 (permalink)  
Старый 01.12.2016, 23:47
Аватар для sovsem-nub
Профессор
Отправить личное сообщение для sovsem-nub Посмотреть профиль Найти все сообщения от sovsem-nub
 
Регистрация: 15.10.2014
Сообщений: 255

Сообщение от Rise Посмотреть сообщение
sovsem-nub, .../sync.json?geo=213 раз в минуту достаточно...
здорово! что-то пришло https://yandex.com/time/sync.json?geo=213

как теперь вот это "time":1480624960011 перевести в часы и минуты и дату наверное....01.12.2016 23:45 примерно
Ответить с цитированием
  #4 (permalink)  
Старый 02.12.2016, 00:02
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,503

new Date(1480624960011)
__________________
29375, 35
Ответить с цитированием
  #5 (permalink)  
Старый 02.12.2016, 00:34
Аватар для sovsem-nub
Профессор
Отправить личное сообщение для sovsem-nub Посмотреть профиль Найти все сообщения от sovsem-nub
 
Регистрация: 15.10.2014
Сообщений: 255

подошло значит всё-таки 42 минуты было а не 45...
Ответить с цитированием
  #6 (permalink)  
Старый 02.12.2016, 01:03
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

sovsem-nub, не всё так просто) ты всего лишь получил timestamp не зависимый от времени пользователя, но для всех часовых поясов естественно он одинаковый (сравни например ?geo=200 и ?geo=213), то что у тебя показывает московское время лишь потому что время твоего компа московское) ты вообще понимаешь что когда в Москве 11 или 15 часов, то у кого то может быть уже ночь например?
Ответить с цитированием
  #7 (permalink)  
Старый 02.12.2016, 01:35
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

sovsem-nub, т.е. все твои акции со скидками с 11 до 15 часов московского времени будут доступны для васи с лос-анджелеса с 00 до 04 часов...
Ответить с цитированием
  #8 (permalink)  
Старый 02.12.2016, 01:41
Аватар для sovsem-nub
Профессор
Отправить личное сообщение для sovsem-nub Посмотреть профиль Найти все сообщения от sovsem-nub
 
Регистрация: 15.10.2014
Сообщений: 255

обидно, почему-то отказано в доступе, хотя напрямую json доступен или я что-то не то делаю
var xhr = new XMLHttpRequest();

xhr.open('GET', 'https://yandex.com/time/sync.json?geo=213', true);

xhr.send(); // (1)

xhr.onreadystatechange = function() { // (3)
  if (xhr.readyState != 4) return;



  if (xhr.status != 200) {
    alert(xhr.status + ': ' + xhr.statusText);
  } else {
    alert(xhr.responseText);
  }

}
Ответить с цитированием
  #9 (permalink)  
Старый 03.12.2016, 14:02
Аватар для sovsem-nub
Профессор
Отправить личное сообщение для sovsem-nub Посмотреть профиль Найти все сообщения от sovsem-nub
 
Регистрация: 15.10.2014
Сообщений: 255

нашел другие часики, но api у них тоже нет. эти часики берут данные отсюда https://time100.ru/api.php . Кодик ajax говорит "нет доступа"

При этом их js файлик, который нужно поставить себе на сайт, чтобы показывать их время, данные оттуда спокойно забирает.
Скачал этот файлик и вставил сюда https://jsfiddle.net/pssttuw4/3/

время он показывает и переменной это время тоже можно присвоить. Но все-таки хочется получить время менее громоздким способом
Ответить с цитированием
  #10 (permalink)  
Старый 03.12.2016, 15:04
Аватар для sovsem-nub
Профессор
Отправить личное сообщение для sovsem-nub Посмотреть профиль Найти все сообщения от sovsem-nub
 
Регистрация: 15.10.2014
Сообщений: 255

поддержу разговор с самим собой. Сократился код так. Итоговый код с правильными часиками тут Почему new Date() не перезаписывается поверху?

function time100(){
time100.cb=function(t,r){alert("На сервере"+new Date(t)+" На компью "+new Date(r))};
}
time100();
i=document.createElement("script")
i.setAttribute("src", "//time100.ru/api.php?type=cb&t="+new Date().getTime())
j=document.getElementsByTagName("head").item(0)
j.appendChild(i)

Последний раз редактировалось sovsem-nub, 05.12.2016 в 00:01.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите где найти нужный материал. Yoksven Общие вопросы Javascript 7 18.06.2010 02:48
Где найти справочник методов DOM? master_alf Events/DOM/Window 6 16.04.2010 12:25
А где его найти? alt5000 ExtJS 3 06.10.2009 14:08
Подскажите где найти tinyMCE udavka25 Общие вопросы Javascript 1 12.12.2008 19:36