Как создать условие с двумя входами с датой? - PullRequest
0 голосов
/ 24 апреля 2020

Можете ли вы помочь мне с кем-то с полями данных?

У меня есть два поля данных. Мне нужно как-то создать условие в PHP или JavaScript, чтобы поле date2 всегда было больше, чем date1.

Если условие было нарушено, поле date2 будет автоматически установлено на ту же дату как в date1.

<div class="form-group">
       <input type="date" class="form-control" onchange="vypocet();ubytko_single();ubytko_double();" onkeydown="return false" id="datumprijezdu" name="datumprijezdu" min="<?php echo (new DateTime())->format('Y-m-d'); ?>" value="<?php echo (new DateTime())->format('Y-m-d'); ?>">
       <label class="form-control-placeholder" for="datumprijezdu">Datum příjezdu</label>
     </div>
     <div class="form-group">
       <input type="date" class="form-control" onchange="DateCheck();vypocet();ubytko_single();ubytko_double();" onkeydown="return false" id="datumodjezdu" name="datumodjezdu" value="<?php echo (new DateTime('tomorrow'))->format('Y-m-d'); ?>" min="<?php echo (new DateTime('tomorrow'))->format('Y-m-d'); ?>">
       <label class="form-control-placeholder" for="datumodjezdu">Datum odjezdu</label>
     </div>

JS

function vypocet() {
const _MS_PER_DAY = 1000 * 60 * 60 * 24;

// a and b are javascript Date objects
function dateDiffInDays(a, b) {
  // Discard the time and time-zone information.
  const utc1 = Date.UTC(a.getFullYear(), a.getMonth(), a.getDate());
  const utc2 = Date.UTC(b.getFullYear(), b.getMonth(), b.getDate());

  return Math.floor((utc2 - utc1) / _MS_PER_DAY);
}

// test it
var x = document.getElementById("datumprijezdu");
var datumprijezdu = x.value;
var y = document.getElementById("datumodjezdu");
var datumodjezdu = y.value;
const a = new Date(datumprijezdu);
    b = new Date(datumodjezdu),
    pocet_dnu = dateDiffInDays(a, b);
    document.getElementById("demo").innerHTML = pocet_dnu;
}

function ubytko_single() {
var ubytko_single_vysledek=0;
var ubytko_single_vysledek = pocet_dnu * 1980;
    document.getElementById("ubytko_single_vysledek").innerHTML = ubytko_single_vysledek + "CZK při možnosti single";
}

function ubytko_double() {
var ubytko_double_vysledek=0;
var ubytko_double_vysledek = pocet_dnu * 2260;
    document.getElementById("ubytko_double_vysledek").innerHTML = ubytko_double_vysledek + "CZK při možnosti double";
}

Я попытался выполнить поиск по inte rnet, но найденные сценарии у меня не сработали: /

1 Ответ

0 голосов
/ 24 апреля 2020

Вот базовая c реализация, которую вы можете использовать. :)

Если у вас есть данные, я могу отредактировать свой ответ.

var date1 = document.getElementById("date1");
var date2 = document.getElementById("date2");

function dateChecker()
{
  if (date1.valueAsDate > date2.valueAsDate)
  {
    
    date2.value = date1.value;
  } else
  {
    console.log("Dates are fine");
  }
}
<input type="date" id="date1">Date 1</input>
<br>
<input type="date" id="date2">Date 2</input>
<br>
<button id="submit" onClick="dateChecker()">Check Dates</button>
...