Это должно сработать:
<input type="datetime-local" name="start" id="start">
<input type="datetime-local" name="end" id="end">
<div id="message"></div>
<button type="submit" name="submit" id="submit">Click to Submit</button>
<script type="text/javascript">
let startInput = document.getElementById('start');
let endInput = document.getElementById('end');
let messageDiv = document.getElementById('message');
let submitButton = document.getElementById('submit');
let compare = () => {
let startValue = (new Date(startInput.value)).getTime();
let endValue = (new Date(endInput.value)).getTime();
if (endValue < startValue) {
messageDiv.innerHTML = 'Start date must be before end date!';
submitButton.disabled = true;
} else {
messageDiv.innerHTML = '';
submitButton.disabled = false;
}
};
startInput.addEventListener('change', compare);
endInput.addEventListener('change', compare);
</script>
Сначала мы сохраняем все HTML элементы, которые нам нужны, в переменных. Затем мы объявляем функцию, которую запускаем при изменении любого ввода даты. Внутри этой функции мы проверяем, не предшествует ли дата окончания дате начала. Если это так, мы отображаем сообщение об ошибке и отключаем кнопку отправки; в противном случае мы скрываем сообщение об ошибке и включаем кнопку отправки.
Я запустил этот код, и он работает.
Прокомментируйте этот ответ, если у вас есть вопросы.