Как округлить время до ближайшей четверти часа в JavaScript?

Я использовал Telerik и JQuery в течение многих лет. "Полнофункциональный" обычно приравнивается к тоннам чрезмерного увеличения размера, функции, в которых Вы не нуждаетесь и заключительная страница, которая тверда (или невозможна) оптимизировать. Отбросьте Telerik и используйте платформу без операционной системы как JQuery. Вы найдете, что это позволит Вам создавать определенную функциональность, в которой Вы нуждаетесь, и Вы никогда не будете возвращаться. Многие полнофункциональные комплекты UI как (как Telerik или ComponentArt) очень обольстительны, но я думаю, что они поощряют большое плохое программирование.

, Например.... У Вас должны действительно быть drag-and-drop-able столбцы на Вашей сетке? Вероятно, нет. Вероятно, лучше иметь область проектирования, где Ваши пользователи могут расположение их предпочтения столбца и затем основное представление, где сетка является мгновенной и легкой. Не представляйте ниже на мегабайты дополнительных функций, что Ваши пользователи никогда не будут (или редко) использование с каждым просмотром страницы.

50
задан holographic-principle 16 July 2013 в 22:23
поделиться

2 ответа

Разделитесь на 9e5 миллисекунды (15 * 60 * 1000), вокруг, и умножьтесь назад 9e5:

const roundToQuarter = date => new Date(Math.round(date / 9e5) * 9e5)

console.log( roundToQuarter(new Date("1999-12-31T23:52:29.999Z")) ) // 1999-12-31T23:45:00

console.log( roundToQuarter(new Date("1999-12-31T23:52:30.000Z")) ) // 2000-01-01T00:00:00

console.log( roundToQuarter(new Date) )
1
ответ дан 7 November 2019 в 10:42
поделиться

Другой с датой-fns (не обязательный)

import {getMinutes, setMinutes, setSeconds, setMilliseconds} from 'date-fns'

let date = new Date();
let min = getMinutes(date);
let interval = 3  // in minutes
let new_min = min - min%interval + interval;
let new_date = setMilliseconds(setSeconds(setMinutes(date,new_min),0),0)

console.log('Orignal Date : ' + date);
console.log('Original Minute : ' + min);
console.log('New Minute : ' + new_min);
console.log('New Date : ' + new_date);
0
ответ дан 7 November 2019 в 10:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: