Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 14.11.2020
Сообщений: 11

Как указать московское или серверное время в автоотправке запроса с джава скрипт?

18.11.2020, 07:00. Показов 1406. Ответов 9

Студворк — интернет-сервис помощи студентам
Всем привет!
В тот раз написал код на JS, который автоматически нажимает кнопку через 60 секунд с момента запуска.
Вот:
JavaScript
1
2
3
setTimeout(() => {
  document.querySelector("input.button.solid").click();
}, 60000);
Насколько я понял время здесь идет от того времени, который установлен у меня на компе, на котором работает браузер. Скажите, как можно вместо этого указать серверное время, или московское? Нужна просто сверхвысокая точность. Если для этого нужно переделать код, скажите, пожалуйста, как написать. Я не разбираюсь в программировании и все это написал, собирая инфу по кусочкам из разных форумов. Дальше никак не могу продвинуться.
Всем спасибо за помощь.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.11.2020, 07:00
Ответы с готовыми решениями:

Как узнать текущее московское время?
Как узнать текущее московское время?

Как получить через IdSNTP московское время?
Получаю время через IdSNTP используя хост 0.europe.pool.ntp.org. Время получаю местное, а как получить, например, по мск?

Московское время и Calendar
Calendar MoscowTime = new GregorianCalendar(TimeZone.getTimeZone("Europe/Moscow")); //...

9
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
18.11.2020, 07:50
Bakyt1995, давайте уточним задачу: у вас имеется страница и вы хотите в случае, если некто Вася Пупкин откроет эту вашу страницу в своем браузере чуть ранее 18-ти часов по московскому времени, то ровно в 18:00:00 МСК Вася Пупкин должен увидеть нечто удивительное на этой странице вне зависимости от того -- правильное или неправильное время выставлено у него в в его операционной системе... я всё верно понял?
1
0 / 0 / 0
Регистрация: 14.11.2020
Сообщений: 11
18.11.2020, 08:29  [ТС]
kalabuni, Это чужой сайт. Там проводится конкурс: нужно отправить секретное слово через форму ровно в 18.00.00. Победителем будет тот, чей ответ ПЕРВЫМ будет записан на сервере в указанное время. Вот я и хотел написать скрипт, который сделал бы такое с точностью до миллисекунд, чтобы быть первым. Когда отправляю ручную, то не получается оказаться первым.
Поэтому здесь форма должна быть отправлена ровно в 18.00 независимо от времени на компьютере. Время должно быть московское или серверное.
Есть возможность такое реализовать?
0
 Аватар для web_coder2
755 / 359 / 100
Регистрация: 04.10.2018
Сообщений: 548
18.11.2020, 08:55
Доброе утро Bakyt1995,

Цитата Сообщение от Bakyt1995 Посмотреть сообщение
Нужна просто сверхвысокая точность.
Любая сетевая операция занимает какое-то время, и скорее всего погрешность будет в районе 0.1 секунды и более

Пример время берется сервера Время берется с сервера http://worldtimeapi.org/

HTML5
1
2
3
4
<div class="times-stamp" style="height: 40px; color: black">
</div>
 
<button class="btn-get-time">Get time</button>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
const init = () => {
    document.querySelector(".btn-get-time").onclick = _ => {
        getTime().then(data =>{
            let t = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})\.(\d{3})/g.exec(data.datetime);
            document.querySelector(".times-stamp").innerHTML = `${t[1]}/${t[2]}/${t[3]} ${t[4]}:${t[5]}:${t[6]}:${t[7]}`
            //let d = new Date(Date.parse(`${t[1]}-${t[2]}-${t[3]} ${t[4]}:${t[5]}:${t[6]}`))
 
        }).catch(e =>{
            console.log("Error: ", e)
        })
    };
}
 
const getTime = async () => {
    let url = `http://worldtimeapi.org/api/timezone/Europe/Moscow`;
    const response = await fetch(url);
    return await response.json()
}
 
window.addEventListener(`load`, init, false);
0
0 / 0 / 0
Регистрация: 14.11.2020
Сообщений: 11
18.11.2020, 09:25  [ТС]
web_coder2, Спасибо
0
 Аватар для web_coder2
755 / 359 / 100
Регистрация: 04.10.2018
Сообщений: 548
18.11.2020, 10:53
Цитата Сообщение от Bakyt1995 Посмотреть сообщение
Это чужой сайт. Там проводится конкурс: нужно отправить секретное слово через форму ровно в 18.00.00. Победителем будет тот, чей ответ ПЕРВЫМ будет записан на сервере в указанное время. Вот я и хотел написать скрипт, который сделал бы такое с точностью до миллисекунд, чтобы быть первым. Когда отправляю ручную, то не получается оказаться первым.
Поэтому здесь форма должна быть отправлена ровно в 18.00 независимо от времени на компьютере. Время должно быть московское или серверное.
Есть возможность такое реализовать?
Еще нужно подумать над защитой от мошенничества, и тогда мой пример не подходит. Потому что можно с консоли отладки отправить запрос fetch на сервер с нужными данными. Но это уже другой вопрос.

Я думаю нужно делать через WebSockets, так как не нужно тратить время на повторную установку соединения, и страница пользователя может получать сообщения от сервера и реагировать на них. Можно так сделать активацию кнопки в определенное время. И работать будет так:
- Пользователь заходит на страницу на сервере начинается сессия этого пользователя, этот пользователь должен как то храниться в бд (может нужно будет зарегстрироваться)
- В определенный момент кнопка становится активной
- Пользователь наживает на кнопку отправляется запрос на сервер, и время будет просчитываться на сервере по приходу ответа от пользователя

Дальше уже решайте кто победитель, но решать учитывая только одно время не лучший вариант.

Добавлено через 2 минуты
Цитата Сообщение от web_coder2 Посмотреть сообщение
но решать учитывая только одно время не лучший вариант.
Кто ближе к серверу тот и победит

Добавлено через 5 минут
Цитата Сообщение от web_coder2 Посмотреть сообщение
В определенный момент кнопка становится активной
Конечно пользователь кнопку можно тоже сделать активной сам, ну тогда можно сделать так чтобы сервер месте с активацией кнопки присылал секретный код для ответа для проверки ответа, ну чтобы убедиться чтобы кнопка была нажата после активации а не как иначе. Хотя это наверное и лишнее если проверка будет идти строго по времени прихода ответа от пользователя, Еще нужно подумать над защитой от спама Xd. В общем не так все просто

Добавлено через 4 минуты
Цитата Сообщение от web_coder2 Посмотреть сообщение
Конечно пользователь кнопку можно тоже сделать активной сам, ну тогда можно сделать так чтобы сервер месте с активацией кнопки присылал секретный код для ответа для проверки ответа, ну чтобы убедиться чтобы кнопка была нажата после активации а не как иначе. Хотя это наверное и лишнее если проверка будет идти строго по времени прихода ответа от пользователя, Еще нужно подумать над защитой от спама Xd. В общем не так все просто
С утра голова еще плохо работает, можно просто кнопку сделать только с названием для вида которая ничего не делает активная она будет или нет не принципиально, а обработчик события повесить уже в определенное время, тогда и еще больше хитрых отвалится

Добавлено через 3 минуты
Цитата Сообщение от web_coder2 Посмотреть сообщение
Пользователь наживает на кнопку отправляется запрос на сервер, и время будет просчитываться на сервере по приходу ответа от пользователя
Забыл написать что его ответ вносится в бд, чтобы сравнивать с ответами других пользователей.

Еще я как то не искал в этом направлении систем определения победителей, но может сначала поискать что готовое в интеренетах

Добавлено через 1 час 0 минут
Цитата Сообщение от Bakyt1995 Посмотреть сообщение
Вот я и хотел написать скрипт, который сделал бы такое с точностью до миллисекунд, чтобы быть первым. Когда отправляю ручную, то не получается оказаться первым.
да блин
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
18.11.2020, 14:31
Цитата Сообщение от Bakyt1995 Посмотреть сообщение
Вот я и хотел написать скрипт, который сделал бы такое с точностью до миллисекунд, чтобы быть первым. Когда отправляю ручную, то не получается оказаться первым.
детский сад, штаны на лямках
ничто не мешает хозяевам сервера прописать в обработчике формы php-инструкцию SLEEP на пару-тройку миллисекунд для любых айпи, кроме айпи заранее выбранного победителя
0
0 / 0 / 0
Регистрация: 14.11.2020
Сообщений: 11
18.11.2020, 18:04  [ТС]
Цитата Сообщение от kalabuni Посмотреть сообщение
ничто не мешает хозяевам сервера прописать в обработчике формы php-инструкцию SLEEP на пару-тройку миллисекунд для любых айпи, кроме айпи заранее выбранного победителя
А что, так тоже делают?
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
18.11.2020, 22:47
Цитата Сообщение от Bakyt1995 Посмотреть сообщение
А что, так тоже делают?
неужто вы полагаете, что, например, в "что-где-когда" знатоки заранее не знают верные ответы на вопросы?

...дурят нашего брата, ох, дурят
0
19.11.2020, 16:59

Не по теме:


Цитата Сообщение от Bakyt1995 Посмотреть сообщение
А что, так тоже делают?
Да как только не делают. В бытность свою ещё фрилансеркой я чинила одному клиенту стим-бота, который управлял "рулеткой" с внутриигровыми вещами (принимал трейды и т.п.). Так вот, функционал "админ может указать, кто выигрывает конкретную ставку" там точно присутствовал.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.11.2020, 16:59
Помогаю со студенческими работами здесь

Перевести белорусское время в московское
Помогите написать задачу, пожалуйста. Перевести белорусское время (в часах) в московское. (Учесть, что 23 часа по белорусскому...

Как поместить джава скрипт в код-хтмл
Хочу поместить js в html! но как? пользуюсь библиотекой ext core ! в книге Дронова В. сказано что саму библиотеку нужно поместить перед...

Как наиболее правильно (или корректно) должна выглядеть строка запроса при передаче в скрипт параметров?
Как наиболее правильно (или корректно)должна выглядеть строка запроса при передаче в скрипт каких либо параметров? есть ли необходимость...

Найти скорость или время или пройденное расстояние в зависимости от запроса пользователя
Нужно создать программный продукт, находящий скорость или время или пройденное расстояние в зависимости от запроса пользователя.

Как будет правильно- Джава или Йава?
Как будет правильно- Джава или Йава?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru