Рассчитать количество времени до следующего часа - PullRequest
3 голосов
/ 18 февраля 2012

Я работаю над проектом веб-сайта, и автобусы ходят каждый час.У меня проблемы с созданием виджета, который находит время между настоящим моментом и следующим часом, чтобы было ясно, когда будет запущен следующий автобус.Мой клиент требует, чтобы это было в JavaScript.Какие-либо предложения?Заранее спасибо.

Ответы [ 5 ]

6 голосов
/ 18 февраля 2012
function getMinutesUntilNextHour() { return 60 - new Date().getMinutes(); }

Обратите внимание, что люди, у которых отключены системные часы, пропустят свой автобус.Возможно, было бы лучше использовать время сервера, а не время на компьютере клиента (AKA, по крайней мере, частично - решение javascript не на стороне клиента).

4 голосов
/ 18 января 2013

Чтобы точно знать милисекунды с настоящего момента до следующего часа:

function msToNextHour() {
    return 3600000 - new Date().getTime() % 3600000;
}

Обратите внимание, что это строго скажет, сколько секунд до следующего часа (если вы запустите это в 4: 00: 00.000, это будетдать вам ровно час).

2 голосов
/ 18 февраля 2012

Любой из двух других ответов будет работать хорошо, но знаете ли вы о доступных вам документах обо всех других приятных моментах, которые JS может сделать для вас?

Mozilla Date Docs

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date

1 голос
/ 18 февраля 2012

у вас есть объект Date в Javascript, вы можете сделать что-то вроде:

var now = new Date();
var mins = now.getMinutes();
var secs = now.getSeconds();
var response = "it will be " + (60 - mins - 1) + " minutes and " + (60 - secs) + " seconds until the next bus";

конечно, вам придется больше работать над этими вычислениями, но именно так вы работаете со временем в javascript

0 голосов
/ 18 февраля 2012

Множество ответов, очень простая функция для получения округленных минут, оставшихся до следующего часа:

function minsToHour() {
  return 60 - Math.round(new Date() % 3.6e6 / 6e4);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...