Javascript относительное время 24 часа назад и т.д. Как время
Я пытаюсь использовать высокие графики, чтобы показать некоторые данные за последние 24 часа. Для диаграммы требуется время начала, когда вы используете время для оси x, как в этом примере для примера Highcharts time. Я не могу понять, как сказать, что это должно начаться 24 часа назад, например, если время было 22:34 18-го, я хочу, чтобы оно началось в 22:34 17-го. Я не очень хорош со временем и датой, и Javascript также не является моей сильной стороной. Полагаю, мне нужно, чтобы готовый вывод был примерно таким: pointStart: Date.UTC(2012, 5, 17, 22, 34)
: pointStart: Date.UTC(2012, 5, 17, 22, 34)
Для приведенного выше примера, но я не совсем уверен, как получить это из Date().
Редактировать: я не уверен, почему он был помечен как дубликат, но я пытался получить время относительно текущего времени (сейчас - 24 часа), а не относительное строковое представление ("двадцать четыре часа назад"). Другой вопрос также вообще не затрагивает высокие чарты.
Ответы
Ответ 1
Вы должны использовать временные метки, которые вы можете рассчитать с ними.
Вот как вы получаете текущую метку времени: Math.round(new Date().getTime() / 1000)
Обратите внимание, что это локальное время компьютера.
Теперь вы можете получить timestamp 24 часа назад, как это:
var ts = Math.round(new Date().getTime() / 1000);
var tsYesterday = ts - (24 * 3600);
Смотрите эту скрипту: http://jsfiddle.net/Mjm7V/
Edit:
Как правильно указал Ник, Date#getTime
возвращает метку времени UTC (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTime)
Ответ 2
Это на самом деле довольно просто:
var yesterday = new Date(new Date().getTime() - (24 * 60 * 60 * 1000));
Просто создайте новый Date
со значением текущей метки времени минус 24 часа.
(24 часа, умноженное на 60 минут в каждый час, умноженное на 60 секунд в каждую минуту, умноженное на 1000 миллисекунд в секунду)
Ответ 3
Просто вычтите количество миллисекунд за 24 часа с даты:
new Date (Date.UTC(2012, 5, 17, 22, 34) - 24 * 3600 * 1000)
Ответ 4
24 часа назад:
new Date(Date.now() - 86400 * 1000).toISOString()
- сейчас:
new Date().toISOString()
- выходы:
'2017-02-04T09:15:25.233Z'
-
Date.now()
возвращает секунды с эпохи.
- Вычитает
86400
секунды в дневное время 1000
для преобразования в миллисекунды
- выходы:
'2017-02-03T09:14:11.789Z'