在 JS 中经过的时间秒数

Seconds into time elapsed in JS

我正在尝试使用 jQuery 和挣扎将总秒数转换为经过的时间。

我有一个例子:{"expires": "254254"} 来自外部来源的响应,我想将其转换成 2days Xhours Xminutes left,我试过使用这样的东西:

function timeDifference(elapsed) {
    var msPerMinute = 60 * 1000;
        var msPerHour = msPerMinute * 60;
        var msPerDay = msPerHour * 24;
        var msPerMonth = msPerDay * 30;
        var msPerYear = msPerDay * 365;
    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';   
        }
} 

--更新

     function DDHHMMSS(seconds){
            var t = seconds
            var cd = 24 * 60 * 60 * 1000,
                ch = 60 * 60 * 1000,
                cs =    60 * 1000,
                d = Math.floor(t / cd),
                h = Math.floor( (t - d * cd) / ch),
                m = Math.round( (t - d * cd - h * ch) / 60000),
                s  =   Math.round( (t - d * cd - h * ch ) / 360000),
                pad = function(n){ return n < 10 ? '0' + n : n; };
            if( m === 60 ){
                h++;
                m = 0;
            }
            if( h === 24 ){
                d++;
                h = 0;
            }

            var days =  d.toString() + "days";
var hour =  pad(h).toString() + "Hours";
var minutes = pad(m).toString() + "Minutes";
var Seconds =  pad(s).toString() + "Seconds";

            return [days , hour , minutes ,Seconds].join(':');
        }

--更新

使用datejs,写这样的东西:

(new Date).clearTime()
          .addSeconds(15457)
          .toString('H:mm:ss');

--更新

如今 date.js 已过时且无人维护,因此请使用 "Moment.js"、

如果您可以使用第三方插件,请尝试:timeago

有关如何将其用于未来日期的更多信息,请参阅问题:

Like timeago, but in the future