【问题标题】:Subtract and Add timestamps jquery减去和添加时间戳jquery
【发布时间】:2016-05-05 09:07:03
【问题描述】:

我知道 stackoverflow 中有很多类似的东西,但我似乎找不到与我类似的东西。

我有包含 start_timestampend_timestamptotal_hours 列的数据表。我在任务管理中使用它来计算您在任务中花费的时间。所以基本上要在任务中获得total_hours,您需要减去end_timestampstart_timestamp,但我只能得到时间。我的时间戳格式类似于Y-m-d h:i:s 2016-05-04 23:00:00。问题是我还需要获得会议记录。另外,最后我需要为所有任务添加所有时间。我当前的代码是:

var totalhours = 0;
$.each(myObj[0], function(key,value) {

    var date_start = new Date(value.start_timestamp);
    var date_end = new Date(value.end_timestamp);
    var milisec = Math.abs(date_end - date_start);
    var seconds = milisec / 1000;
    var hours = parseInt( seconds / 3600 );

    totalhours += hours;

    var isdaily = '';
    if(value.is_daily == 0)
    {
        isdaily = 'Added'
    }
    else
    {
        isdaily = 'Daily'
    }

    t.row.add( [
        value.id,
        value.task_description,
        value.start_timestamp,
        value.end_timestamp,
        hours,
        value.name,
        value.assign,
        value.created_at,
        isdaily,
        value.status
    ] ).draw();
});

所以基本上totalhours 是所有任务的总小时数和hours 每个任务的小时数,我怎么还包括分钟数?

【问题讨论】:

    标签: javascript jquery timestamp


    【解决方案1】:

    问题是我还需要获取会议记录。

    你需要添加

    var minutes = parseInt( seconds / 60 );
    

    var hours = parseInt( seconds / 3600 );
    

    需要对其余的功能逻辑进行相应的操作。

    如果您想将 2.5 转换为 2 小时 30 分钟

    var x = 2.5;
    var hours = parseInt(x);
    var minutes = ( x - parseInt(x) ) * 60;
    

    【讨论】:

    • 您好,感谢您的帮助。我知道这一点,但这个公式只能在几小时内得到分钟转换,对吗?所以如果我有 2016-05-04 03:00:00 - 2016-05-04 01:00:00。那是2小时还是120分钟,对吗?我需要的是,如果像 2016-05-04 03:30:00 - 2016-05-04 01:00:00 这样的东西,那么它将是 2 小时 30 分钟类似的东西。
    • 您需要使用parseFloat(seconds / 3600 ),然后以分钟为单位进行转换
    • @jackhammer013 我添加了将浮点小时值转换为小时-分钟的示例。请看一看。
    猜你喜欢
    • 2021-10-18
    • 2011-04-02
    • 1970-01-01
    • 2014-04-25
    • 1970-01-01
    • 1970-01-01
    • 2014-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多