两个日期之间的javascript时间

时间:2014-01-12 04:29:39

标签: javascript

我有以下功能:

function update_comments(){
    $('.comment_list_item').each(function(){
        var current_comment = $(this).find('.comment_time');
        var old_text = current_comment.text();
        var current_time = new Date().getTime();
            var timer = $(this).find('.hour_glass')
            var old_time = parseFloat(timer.val());
            var new_time = current_time - old_time;
            var minutes=1000*60;
            var hours=minutes*60;
            var days=hours*24;
        var new_text = '';
        if(days > 0){
            new_text = days+' Days ago';
        }else if(hours > 0){
            if(hours === 1){
                new_text = hours+' Hour ago';
            }else{
                new_text = hours+' Hours ago';
            }
        }else{
            if(minutes === 1){
                new_text = minutes+' Minute ago';
            }else{
                new_text = minutes+' Minutes ago';
            }
        }
        current_comment.text(new_text);
    });
}

其中old_time是值为microtime(true);

的输入字段

现在1分钟后结果是86400000天,谁能告诉我为什么?

2 个答案:

答案 0 :(得分:3)

您是否仔细阅读过您的代码?它包括以下几行:

var minutes=1000*60;
var hours=minutes*60;
var days=hours*24;

所以是的,你是根据常数(不是旧时和新时间之间的差异)来计算分钟,小时,天。具体来说,从上面可以看出

days = 1000 * 60 * 60 * 24 = 86400000 
就像你观察到的一样。

以下内容:

var minutes = milliseconds / (1000 * 60);
var hours = minutes / 60;
var days = hours / 24;

是将毫秒转换为几分钟甚至几小时的传统方法......

答案 1 :(得分:2)

假设new_time以毫秒为单位(非常可能),您应该:

var minutes = new_time / 1000 / 60;
var hours= minutes / 60;
var days = hours / 24;

干杯