Как добавить ввод из приглашения по местному времени, используя только JavaScript? - PullRequest
0 голосов
/ 05 ноября 2018

Я учусь на инженера-программиста на курсе "Введение в JavaScript" и застрял на задании. Вот это задание,

в файле с именем alarmTime.html, используйте prompt (), чтобы узнать, как долго пользователь хочет спать. Затем напишите заявление в документе, сообщив пользователю, в какое время должна сработать его тревога Убедитесь, что время местное для пользователя.

Я застрял при добавлении ввода к местному времени пользователя. Я действительно не знаю, что я делаю неправильно, и мне трудно понять, что делать, потому что все, что я получаю, это то, что кажется случайным числом. Пожалуйста, посмотрите на мой код и направьте меня в правильном направлении.

    var howLong = prompt("How long, in hours, do you want to nap for?", 1);
    var parsedInput = parseFloat(howLong);

    var today = new Date();
    var currentTime = today.toLocaleTimeString();
    var myHour = today.getHours(currentTime);

    var alarm = today.setHours(myHour + parsedInput); 


    document.write(alarm);

Ответы [ 3 ]

0 голосов
/ 05 ноября 2018

Проблема в том, что var alarm = today. setHours (myHour + parsedInput);

вместо этого попробуйте установить переменную как

var alarm = today.getHours ();

или изменить document.write (будильник); to document.write (сегодня);

0 голосов
/ 05 ноября 2018

Date.now () покажет вам текущее время (местное время пользователя). Добавьте время из подсказки и ваше добро:

let napTime = prompt('how many minutes do you want to nap?');
let alarmTime = new Date(Date.now()+napTime*60000);
//if you want to get HOURS instead of minutes
//let alarmTime = new Date(Date.now()+napTime*3600000);

//print it out. toLocale...() functions return local FORMAT of the datetime,
//they dont deal with timezones
document.write('set alarm to '+alarmTime.toLocaleTimeString('en-US'));
console.log(alarmTime);
0 голосов
/ 05 ноября 2018

Причина в том, что это утверждение document.write(alarm);. setHours метод в объекте Date обновляет экземпляр Date и возвращает дату в миллисекундах. Поэтому вы печатаете объект Date как число миллисекунд с 1 января 1970 года. Чтобы это исправить, просто замените его на document.write(today);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...