Javascript聊天应用的相对时间

时间:2015-03-11 19:46:53

标签: javascript

我打算创建一个聊天应用,其中的消息显示相对时间,如1秒前,2分钟前等。

我有以下代码

function timeDifference(current, previous) {

    var msPerMinute = 60 * 1000;
    var msPerHour = msPerMinute * 60;
    var msPerDay = msPerHour * 24;
    var msPerMonth = msPerDay * 30;
    var msPerYear = msPerDay * 365;

    var elapsed = current - previous;

    if (elapsed < msPerMinute) {
         return Math.round(elapsed/1000) + ' seconds ago';   
    }

    else if (elapsed < msPerHour) {
         return Math.round(elapsed/msPerMinute) + ' minutes ago';   
    }

    else if (elapsed < msPerDay ) {
         return Math.round(elapsed/msPerHour ) + ' hours ago';   
    }

    else if (elapsed < msPerMonth) {
        return 'approximately ' + Math.round(elapsed/msPerDay) + ' days ago';   
    }

    else if (elapsed < msPerYear) {
        return 'approximately ' + Math.round(elapsed/msPerMonth) + ' months ago';   
    }

    else {
        return 'approximately ' + Math.round(elapsed/msPerYear ) + ' years ago';   
    }
}

我需要比较用户计算机的时间戳和我数据库中的其他用户时间戳。

如果user1从美国连接并且user2从俄罗斯连接,那么时间戳是相同还是不同?如果它们不同,那么创造相对时间的方式是什么?

1 个答案:

答案 0 :(得分:0)

Javascript将在其运行的系统上创建时间戳,因此对于美国系统,它将使用其时区。

另外php时间和javascript之间存在差异:

startLive = new Date(<?php echo strtotime($start_date)*1000; ?>);

说明:

PHP的strtotime函数返回一个Unix时间戳(自午夜1-1-1970以来的秒数)。

Javascript的Date()函数可以通过指定自午夜1-1-1970之后的毫秒来实例化。

因此,将秒乘以1000得到毫秒数,您可以在Javascript中使用它。

Pass Datetime/Timestamp from PHP to Javascript by echo