2016-08-08 27 views
0

私はJavascriptでpomodoroの時計を使っています。日付オブジェクトから時刻を取得して設定する

少し混乱しています。Date Obj。以下のコードのように、 'Session Timer' & 'Break Timer'の値はグローバル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

どのように私は推測するディスプレイ – Kayote

+1

上のタイマの出力時間/分/秒程度のおかげで、(上記のコードごとに)このことを認識しています、しかし、イムが混乱あなたは$ {meter.break.getHours()}を使うことができます:$ {meter.break.getMinutes()}:$ {meter.break.getSeconds()} '?あなたの例では、これらのメソッドがミリ秒単位で時間を返す理由は何ですか?唯一のセッターはそれを行う –

+0

ああ、良いキャッチ!それはそれを解決しました!ありがとう、値の私の探査で、私は間違ったターンを取らなければならない&何とか 'get ***()'メソッドからの戻り値がmsであるという仮定を得ました。私は将来の参照のためにそれを受け入れることができるように答えを修正して整理してください。 – Kayote

関連する問題