#javascript
#javascript
Вопрос:
Я хочу добавить минутное смещение к текущему времени и отобразить его в 12-часовом формате
var now = new Date();
var offset = 1000;
var timeOffset = now.setMinutes(now.getMinutes() offset);
var hours = timeOffset.getHours();
var minutes = timeOffset.getMinutes();
var ampm = hours >= 12 ? 'pm' : 'am';
hours = hours % 12;
hours = hours ? hours : 12; // the hour '0' should be '12'
minutes = minutes < 10 ? '0' minutes : minutes;
var newTime = hours ':' minutes ' ' ampm;
console.log(newTime)
почему это выбрасывает TypeError: dateTime.getHours is not a function
?
Комментарии:
1.
.setMinutes()
не возвращает экземпляр Date.2. @Pointy верен, он возвращает «Количество миллисекунд между 1 января 1970 года 00:00:00 UTC и обновленной датой». developer.mozilla.org/en-US/docs/Web/JavaScript/Reference /…
Ответ №1:
setMinutes
установите минуты на текущую дату-объект, поэтому возьмите now
для дальнейших вычислений.
var now = new Date();
var offset = 1000;
now.setMinutes(now.getMinutes() offset);
var hours = now.getHours();
var minutes = now.getMinutes();
var ampm = hours >= 12 ? 'pm' : 'am';
hours = hours % 12;
hours = hours ? hours : 12; // the hour '0' should be '12'
minutes = minutes < 10 ? '0' minutes : minutes;
var newTime = hours ':' minutes ' ' ampm;
console.log(newTime)
Ответ №2:
Следующая строка работает не так, как вы предполагали;
var timeOffset = now.setMinutes(now.getMinutes() offset);
timeOffset
будет целым числом с количеством миллисекунд. Вместо определения второго параметра вы можете изменить now
переменную следующим образом;
var now = new Date();
var offset = 1000;
now.setMinutes(now.getMinutes() offset);
var hours = now.getHours();
var minutes = now.getMinutes();
var ampm = hours >= 12 ? 'pm' : 'am';
hours = hours % 12;
hours = hours ? hours : 12; // the hour '0' should be '12'
minutes = minutes < 10 ? '0' minutes : minutes;
var newTime = hours ':' minutes ' ' ampm;
console.log(newTime)