#javascript #momentjs
#javascript #momentjs
Вопрос:
var timeArr = moment().format('HH:mm').split(':');
var timeInMilliseconds = (timeArr[0] * 3600000) (timeArr[1] * 60000);
Это мое текущее решение. Я бы предпочел использовать moment api для вычисления сегодняшнего времени (время с 12:00 утра сегодня) в миллисекундах.
Мой код возвращает сегодняшнее время в миллисекундах. Мне нужно вызвать другую функцию за миллисекунды. Я не могу использовать эпоху. Мне нужно, чтобы сегодняшнее время было отформатировано в миллисекундах.
Примеры:
9:00am = 3.24e 7 milliseconds
9:00pm = 6.84e 7 milliseconds.
Ответ №1:
Вы можете попробовать следующее:
var moment = require("moment");
// Compute the time in milliseconds assuming it's 1AM now
moment("1:00","HH:mm")-moment("00:00","HH:mm")
// 3600000
// Compute the time in milliseconds assuming it's 9AM now
moment("9:00","HH:mm")-moment("00:00","HH:mm")
// 32400000
// Compute the time in milliseconds assuming it's 9PM now
moment("21:00","HH:mm")-moment("00:00","HH:mm")
// 75600000
// For current time
moment()-moment("00:00","HH:mm")
Комментарии:
1. // Для текущего времени moment()-moment(«00:00», «ЧЧ: мм»)
2. // Для текущего времени moment()-moment(«00:00», «ЧЧ: мм»)
3. Idk как удалить мои комментарии ^ но, похоже, это работает, я просто не понимаю, почему. Прочитайте документы и не можете найти.
Ответ №2:
Вы можете использовать следующие функции:
moment()
— это дает вам текущий момент («сейчас»)startOf('day')
— это дает вам первый момент дняdiff
— это вычисляет разницу между двумя моментами
Собираем это вместе:
moment().diff(moment().startOf('day'))
Единицами измерения по умолчанию являются миллисекунды, поэтому вам не нужно их указывать.
Это дает вам миллисекунды, прошедшие с начала дня. Однако обратите внимание, что в некоторых часовых поясах (например, в Бразилии) переход на летнее время происходит прямо в полночь — в такие дни часы идут с 23:59:59 до 01:00:00, поэтому первый момент дня может быть не таким.полночь! В этой ситуации значения, возвращаемые вышеупомянутой функцией, могут отличаться на час от того, что вы ожидаете. Это действительно время возврата с начала дня, просто не время с «полуночи».
Чтобы компенсировать эту возможность, вместо этого вы можете сделать следующее:
moment().utcOffset(0, true).diff(moment().utcOffset(0, true).startOf('day'))
utcOffset(0, true)
Переключится в режим UTC с сохранением местного времени без изменений. Это немного более запутанно, чем в первом примере, но выполняет свою работу, потому что UTC никогда не испытывает переходов в летнее время.