JS - 格式化友好时间

/**
 * 毫秒转换友好的显示格式
 * 输出格式:21小时前
 * @param  {[type]} time [description]
 * @return {[type]}      [description]
 */
function formatTime(date) {
    //获取js 时间戳
    var time = new Date().getTime();
    //去掉 js 时间戳后三位,与php 时间戳保持一致
    time = parseInt((time - date * 1000) / 1000);
    //存储转换值 
    var s;
    if(time < 60 * 10) {//十分钟内
        return '刚刚';
    } else if ((time < 60 * 60) && (time >= 60 * 10)) {
        //超过十分钟少于1小时
        return Math.floor(time / 60) + '分钟前';
    } else if ((time < 60 * 60 * 24) && (time >= 60 * 60)) { 
        //超过1小时少于24小时
        return Math.floor(time / 60 / 60) + '小时前';
    } else if ((time < 60 * 60 * 24 * 3) && (time >= 60 * 60 *24)) { 
        //超过1天少于3天内
        return Math.floor(time / 60 / 60 / 24) + '天前';
    } else { 
        //超过3天
        var date = new Date(parseInt(date) * 1000);
        return date.getFullYear() + "/" + (date.getMonth() + 1) + "/" + date.getDate();
    }
}
function formatDate(time) {
    var ago, curTime, diff, int;
    time -= 0;
    if (("" + time).length === 10) time *= 1000;
    int = parseInt;
    curTime = +new Date();
    diff = curTime - time;
    ago = "";
    if (1000 * 60 > diff) {
        ago = "刚刚";
    } else if (1000 * 60 <= diff && 1000 * 60 * 60 > diff) {
        ago = int(diff / (1000 * 60)) + "分钟前";
    } else if (1000 * 60 * 60 <= diff && 1000 * 60 * 60 * 24 > diff) {
        ago = int(diff / (1000 * 60 * 60)) + "小时前";
    } else if (1000 * 60 * 60 * 24 <= diff && 1000 * 60 * 60 * 24 * 30 > diff) {
        ago = int(diff / (1000 * 60 * 60 * 24)) + "天前";
    } else if (1000 * 60 * 60 * 24 * 30 <= diff && 1000 * 60 * 60 * 24 * 30 * 12 > diff) {
        ago = int(diff / (1000 * 60 * 60 * 24 * 30)) + "月前";
    } else {
        ago = int(diff / (1000 * 60 * 60 * 24 * 30 * 12)) + "年前";
    }
    return ago;
}

返回文章列表 文章二维码 打赏
本页链接的二维码
打赏二维码
期待你的评论

9 条评论
  1. nszbf 白银   nszbf  

    博主打扰了,在您新婚到来之即,请教一个困扰我很长时间的问题...
    我看您的文章好像并不是用markdown或富文本编辑的,每一篇文章都是独立的,这是如何做到的?
    如何才能像你这样定制化自己的每一篇文章?@(哈哈)阿里嘎多勾杂意马斯

    1. 小尾巴 王者   小尾巴   博主
      @ nszbf

      没那么复杂,typecho 了解一下 ๑乛◡乛๑

  2. wordpress主题 青铜   wordpress主题  

    很不借的代码,基本能满足我们所有对时间的需求了!

  3. True 白银   True  

    高端。。。。@(滑稽)

    1. 小尾巴 王者   小尾巴   博主
      @ True

      低调 ๑乛◡乛๑

  4. cunzher 钻石   cunzher  

    输入18607090000后弹出两个对话框

    刚刚
    48年前

    @(乖)那么问题来了,到底是刚刚还是48年前啊。。。。

    #(狂汗)

    1. 小尾巴 王者   小尾巴   博主
      @ cunzher

      You can try again ๑乛◡乛๑

      1. cunzher 钻石   cunzher  
        @ 小尾巴

        48到底是个神马神奇的数字?时间戳再早也只是提示48年前#(献黄瓜)

        1. 小尾巴 王者   小尾巴   博主
          @ cunzher

          我也不造~