如何比较时间戳

时间:2012-06-05 16:31:36

标签: jquery timestamp

我查看了这个论坛,发现了一些关于使用jQuery转换时间戳的简短帖子。 但我没有发现一次解决了我的问题。

我正在开发一个与Jquery Mobile结合使用的Web应用程序。 在这个webapp我显示一些Twitter提要:图像来自和消息。现在我也试图在那里得到约会。

我想从json那里了解日期,就像这样:

Tue, 05 Jun 2012 13:25:06 +0000

现在我想将此日期与当前日期进行比较,以计算过去的时间。 这是因为我想说:1秒前,2分钟前1小时前等。

有人可以告诉我如何将当前日期与推特日期进行比较吗?

2 个答案:

答案 0 :(得分:2)

你可以像这样在javascript中比较时间戳。

var input_date = new Date('Tue, 05 Jun 2012 13:25:06 +0000').getTime();
var curr_date = new Date().getTime();
if(input_date > curr_date){
  alert("greater");    
}else{
  alert('small');
}

以下是Demo

但根据您的要求,您希望显示时间,例如'1分钟前','1小时前','2天前',您可以使用 jquery timeago插件 而不是做javascrpt计算。请参阅this plugin,它将满足您的需求。

答案 1 :(得分:1)

var twitterDate = new Date("Tue, 05 Jun 2012 13:25:06 +0000").getTime(),
    now = new Date().getTime();

if (twitterDate > now) {
    alert('Future')
} else {
    alert('Past');
}

<强> DEMO

  

getTime方法返回的值是毫秒数   自1970年1月1日00:00:00 UTC。

了解 .getTime()

为了获得日期差异,您可以遵循以下方法:

function getDateDiff(twitterDate, interval) { // interval means unit,
    // in which you want the result
    var second = 1000,
        minute = second * 60,
        hour = minute * 60,
        day = hour * 24,
        week = day * 7;
    date1 = new Date(twitterDate).getTime();
    date2 = new Date().getTime();
    var timediff = date2 - date1;
    if (isNaN(timediff)) return NaN;
    switch (interval) {
    case "years":
        return date2.getFullYear() - date1.getFullYear() + ' years ago.';
    case "months":
        return ((date2.getFullYear() * 12 + date2.getMonth()) - (date1.getFullYear() * 12 + date1.getMonth())) + ' months ago.';
    case "weeks":
        return Math.floor(timediff / week) + ' weeks ago.';
    case "days":
        return Math.floor(timediff / day) + ' days ago.';
    case "hours":
        return Math.floor(timediff / hour) + ' hours ago.';
    case "minutes":
        return Math.floor(timediff / minute) + ' minutes ago.';
    case "seconds":
        return Math.floor(timediff / second) + ' seconds ago.';
    default:
        return undefined;
    }
}

使用:

getDateDiff("Tue, 05 Jun 2012 13:25:06 +0000", "seconds");