2016-08-08 4 views
0

Я работаю над часами pomodoro в Javascript.Получить и установить время с даты Объект

Я немного смущен Date Obj. В соответствии с приведенным ниже кодом идея заключается в том, что значения таймера сеанса & «Разрыв таймера» будут храниться в глобальном объекте, поэтому они могут быть восстановлены &/или обновлены. Однако, следующее заблуждение меня:

// The following stores the current time 
// which makes sense. 
const meter = { 
    break : new Date(), 
    session : new Date() 
}; 
// However, when I set the minutes on the Date obj 
// the above break & session props are no longer 
// a Date obj, instead they are number. 
// So, I cant use the 'getMinutes()' 
const meter = { 
    break : new Date().setMinutes(5), // is a number, not Date anymore! 
    session : new Date().setMinutes(10) // is a number, not Date anymore! 
}; 

Я мог бы передать число перерыв/сеанса через new Date() метод, чтобы создать новую дату, но мне интересно, как бы создать таймер (в основном в формате [ч]: [мин ]: [сек]). Разве я должен сделать что-то, как следует каждый второй, прежде чем я обновить код:

let number = 1470650701308; // time in milliseconds as returned by methods (getMinutes(), getHours(), getSeconds()) 
let hours = 1470650701308/(1000 * 60 * 60); // ms * sec * min 
let minutes = 1470650701308/(1000 * 60); // ms * sec 
let seconds = 1470650701308/(1000); // ms 

Так что мой вопрос, как идти о получении времени в часах/минутах & секунд, так что я могу обновить мои часы каждый второй?

Благодаря

ответ

0

Метод setminutes изменяет объект и возвращает Int.

попробуйте вместо этого:

const meter = { 
    break : new Date(), 
    session : new Date() 
}; 

meter.break.setMinutes(5); 
meter.session.setMinutes(10); 
+0

спасибо, я знал об этом (как в коде выше), однако, Im путать о том, как выводить часы/минуты/секунды для таймера на дисплее – Kayote

+1

я думаю вы можете использовать '$ {meter.break.getHours()}: $ {meter.break.getMinutes()}: $ {meter.break.getSeconds()}'? Почему вы говорите в своем примере, что эти методы возвращают время в миллисекундах? Только сеттеры делают это –

+0

А, хорошо поймайте! Это решило! Спасибо, в моем исследовании значений, я, должно быть, ошибся и почему-то понял, что возвращаемое значение из методов 'get ***()' ms. Не могли бы вы исправить и организовать ответ, чтобы я мог принять его для дальнейшего использования. – Kayote