【问题标题】:Get & Set Time from Date Object从日期对象获取和设置时间
【发布时间】:2016-08-08 10:56:52
【问题描述】:

我正在用 Javascript 编写番茄钟。

我对@9​​87654321@ Obj 有点困惑。根据下面的代码,想法是“会话计时器”和“中断计时器”值将存储在全局 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() 方法传递休息/会话编号来创建新日期,但我想知道如何创建计时器(主要格式为 [hr]:[min]:[sec])。在更新代码之前,我是否必须每秒执行以下操作:

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

所以我的问题是如何以小时/分钟和秒为单位获取时间,以便我可以每秒更新时钟?

谢谢

【问题讨论】:

    标签: javascript date time typeof minute


    【解决方案1】:

    setminutes 方法修改对象并返回一个 int。

    试试这个:

    const meter = {
        break : new Date(),
        session : new Date()
    };
    
    meter.break.setMinutes(5);
    meter.session.setMinutes(10);
    

    【讨论】:

    • 谢谢,我知道这一点(根据上面的代码),但是,我对如何输出显示的计时器的小时/分钟/秒感到困惑
    • 我猜你可以使用${meter.break.getHours()}:${meter.break.getMinutes()}:${meter.break.getSeconds()}?为什么你在你的例子中说这些方法以毫秒为单位返回时间?只有二​​传手这样做
    • 啊,好接棒!那解决了!谢谢,在我对这些值的探索中,我一定是走错了方向,并且以某种方式假设 get***() 方法的返回值是 ms。请您修复并整理答案,以便我接受以供将来参考。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-09
    • 1970-01-01
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    • 2019-01-07
    相关资源
    最近更新 更多