您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

相对于相对时间的Javascript时间戳(例如2秒前,一周前等),最佳方法?

相对于相对时间的Javascript时间戳(例如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';   
    }
}

如果这会让您感到困扰1 day1 days则可能需要对其进行调整以更好地处理奇异值(例如而不是)。

javascript 2022/1/1 18:17:28 有597人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶