javascript 时间格式化

2013 - 1 - 21 作者 : Jimco 分类 : JavaScript

    项目需求,将消息的发布时间格式化为:

    1、< 60s, 显示为“刚刚”

    2、>= 1min && < 60 min, 显示与当前时间差“XX分钟前”

    3、>= 60min && < 1day, 显示与当前时间差“今天 XX:XX”

    4、>= 1day && < 1year, 显示日期“XX月XX日 XX:XX”

    5、>= 1year, 显示具体日期“XXXX年XX月XX日 XX:XX”

    分享我写的一个方法:

function timeFormat(time){
  var date = new Date(time)
    , curDate = new Date()
    , year = date.getFullYear()
    , month = date.getMonth() + 1
    , day = date.getDate()
    , hour = date.getHours()
    , minute = date.getMinutes()
    , curYear = curDate.getFullYear()
    , curHour = curDate.getHours()
    , timeStr;

  if(year < curYear){
    timeStr = year +'年'+ month +'月'+ day +'日 '+ hour +':'+ minute;
  }else{
    var pastTime = curDate - date
      , pastH = pastTime/3600000;

    if(pastH > curHour){
      timeStr = month +'月'+ day +'日 '+ hour +':'+ minute;
    }else if(pastH >= 1){
      timeStr = '今天 ' + hour +':'+ minute +'分';
    }else{
      var pastM = curDate.getMinutes() - minute;
      if(pastM > 1){
        timeStr = pastM +'分钟前';
      }else{
        timeStr = '刚刚';
      }
    }
  }

  return timeStr;
}

 

    转载一个前辈的日期格式化函数(这货真心牛叉):

Date.prototype.format = function(format){ //author: meizz
  var o = {
    "M+" : this.getMonth()+1, //month
    "d+" : this.getDate(),    //day
    "h+" : this.getHours(),   //hour
    "m+" : this.getMinutes(), //minute
    "s+" : this.getSeconds(), //second
    "q+" : Math.floor((this.getMonth()+3)/3),  //quarter
    "S" : this.getMilliseconds() //millisecond
  }
  if(/(y+)/.test(format)) format=format.replace(RegExp.$1,
    (this.getFullYear()+"").substr(4 - RegExp.$1.length));
  for(var k in o)if(new RegExp("("+ k +")").test(format))
    format = format.replace(RegExp.$1,
      RegExp.$1.length==1 ? o[k] :
        ("00"+ o[k]).substr((""+ o[k]).length));
  return format;
}
alert(new Date().format("yyyy-MM-dd hh:mm:ss"));


    感慨下:今天,充满杯具色彩的一天,Github 终被天朝枪毙,说好的开放呢?说好的自由呢??难道“焚书坑儒”、“闭关锁国”的历史还能在互联网时代上演?


遥远的东方有一道破墙

让我们的言论无法传扬

 

当一整页的数据穿墙而过

剩下的就尼玛几行

 

数据们都抱着自由的梦

但进进出出都被GFW盯得无处可藏~


10898 人围观 / 5 条评论 ↓快速评论↓

  • 为嘛评论必须包含中文阿狸10

    小菜 2013-01-22 14:38 回复

    • @小菜:阿狸1因为要防着垃圾评论呢~~~

      Jimco 2013-01-22 23:16 回复

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18

Powered by Jimco

©2013 前端那些事儿 Designed by Jimco

About me|意见反馈