Почему к примеру если указать "17:00","19:00" выведет правильно 7200000ms - то есть до oldtime 2ч.
А вот если указать "22:00","00:00" выведет 79200000ms хотя до "00:00" 7200000ms
В чём проблема?
var nowtime = "17:00"
var oldtime = "19:00"
function Ms(str){
const [h, m] = str.split(':').map(v => +v)
const d = new Date();
d.setHours(h);
d.setMinutes(m);
d.setSeconds(0);
return d.getTime();
}
Ms(nowtime)-Ms(oldtime);
Когда вы указываете 00:00 он не знает, что это следующий день и считает, что между 22:00 и 00:00 не 2 часа, а 22 часа. Чтобы указать что это следующий день прибавляйте к дате 24 * k, где k - это количество дней после текущего. Ну или просто указывайте 24 вместо 00.
var nowtime = "22:00"
var oldtime = "24:00"
function Ms(str){
const [h, m] = str.split(':').map(v => +v)
const d = new Date();
d.setHours(h);
d.setMinutes(m);
d.setSeconds(0);
return d.getTime();
}
console.log(Ms(nowtime)-Ms(oldtime));
На выходе дает: 7200000
var nowtime = "00:00"
var oldtime = "22:00"
function Ms(str, days = 0){
const [h, m] = str.split(':').map(v => +v)
const d = new Date();
d.setHours(days * 24 + h);
d.setMinutes(m);
d.setSeconds(0);
return d.getTime();
}
console.log(Ms(nowtime, 1)-Ms(oldtime));
Дает такой же результат.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Насколько мне известно, hover на айфонах просто так не работаетНо тут меня постиг сюрприз
Возник вопрос: Есть панель, которая меняет свой цвет в зависимости от действий пользователя, а на ней должен отображаться текстИз-за того...
Нужно редактировать сжатый js-кодНикогда раньше с этим не сталкивался