Как запросить дату и время, а затем предупредить с этой датой и временем минус 40 минут - PullRequest
0 голосов
/ 06 октября 2019

Я делаю работу для класса, и вопрос заключается в том, чтобы мы попросили пользователя указать дату отправления его рейса, затем в следующем запросе пользователю предлагается ввести время вылета, а затем нам нужно уведомление, сообщающее ему последнее возможноевремя заезда (за 40 минут).

У меня есть приглашения и предупреждения, но я изо всех сил пытаюсь найти способ минус 40 минут. Я пытался использовать функцию get, но я не знаю, если это неправильно или я делаю это неправильно.

var day = prompt("When is your departure date? (eg. 2019-10-12):", "2019-10-12");

var tim = prompt("When is your departure time? (eg. 10:30):", "10:30");

var time = tim - 40;
var check = alert("The check in counter closes:" + day + " " + time);

Я знаю, что время должно показываться как 40 минут раньше, но если рейс отправляется в 00:30, я не знаю, как заставить его использовать предыдущую дату и 23: 50.

Ответы [ 2 ]

0 голосов
/ 06 октября 2019

Преобразуйте ваши строки в Date(), а затем выполните: date.setMinutes(date.getMinutes() - 40) и преобразуйте обратно в строку для печати. ​​

Пример:

var day = prompt("When is your departure date? (eg. 2019-10-12):", "2019-10-12");

var tim = prompt("When is your departure time? (eg. 10:30):", "10:30");

let date = new Date(day + 'T' + tim);
date.setMinutes(date.getMinutes() - 40);

let formatted_date = date.getDate() + "-" + (date.getMonth() + 1) + "-" + date.getFullYear() + " " + date.getHours() + ":" + date.getMinutes();

var check = alert("The check in counter closes: " + formatted_date);
0 голосов
/ 06 октября 2019

Вы можете создать новый объект Date() с первым возвратом подсказки, затем установить часы и минуты этого объекта со вторым значением подсказки.

Затем вычислить разницу во времени следующим образом:

let diff_ms = Date.now() - (new Date(<promptvalue...>).now());

и убедитесь, что разница меньше 40 мин, при условии, что разница в мс:

let fortyMn_ms = 1000 * 60 * 40;
if(diff_ms < fortyMn_ms) { /*... */ }
...