@WebforSelf

Как правильно сделать проверку на текущее время и дату js?

Есть такая задачка

в дату подставляю текущую дату . и дальше идут интервалы которые доступны сегодня.
Допустим у нас уже есть 9 00 , значит первый интервал должен быть disabled

Что вообще получать и сравнивать? в каком виде мне получить текущее время чтоб можно было потом сравнить диапазон и уже отключить одну из 4 радиокнопок.

При условии что если я дату поменяю на завтра , то должны все диапазоны открыты быть, в общем чтоб и дата и время проверялись.
  • Вопрос задан
  • 105 просмотров
Решения вопроса 1
hahenty
@hahenty
('•')
В сравнении границ времени переводить суточное время в абсолютную дату.

для codepen-а
const dd = document.getElementById( 'date_delivery' );
const ints = document.querySelectorAll( '.form_radio_btn' );


dd.onchange = function() {
  const dt = this.valueAsDate;
  console.log( ymdhi( dt) );
  ints.forEach( int => disen( int, dt ) );
}

dd.valueAsDate = new Date();
dd.onchange();



function disen( int, dt ) {
  const [ h1, i1, h2, i2 ] = int.querySelector( '.form_radio_btn label' ).innerText.split( /\D+/ );
  const { year, month, date } = ymdhi( dt );
  const d1 = new Date( year, month, date, h1, i1, 0 );
  const d2 = new Date( year, month, date, h2, i2, 0 );
  const now = new Date();
  int.querySelector( '.form_radio_btn input' ).disabled = ( now > d1 );
}

function ymdhi( now ) {
  const year = now.getFullYear();
  const month = now.getMonth();
  const date = now.getDate();
  const hours = now.getHours();
  const minutes = now.getMinutes();
  return { year, month, date, hours, minutes }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы