<font id="zqva1"></font>
<rt id="zqva1"></rt>
  • <tt id="zqva1"></tt>
    <cite id="zqva1"></cite>

    <cite id="zqva1"><noscript id="zqva1"></noscript></cite>
      <rp id="zqva1"><meter id="zqva1"></meter></rp>

        <cite id="zqva1"></cite>
          <b id="zqva1"></b>
          <rp id="zqva1"></rp>
          <cite id="zqva1"></cite>

          <rt id="zqva1"></rt>

        1. <rp id="zqva1"></rp>

          原生js實現時間格式化方法整理總匯,包括 js顯示幾天前、幾小時前或者幾分鐘前的方法

          時間:?2017-11-16閱讀:?1887標簽:?格式化

          當在做項目的時候,后臺返回的時間格式很多時是時間戳的形式返回,就需要我們前端來格式化顯示,這篇文章將介紹通過原生js對時間進行格式轉換的多種方法,支持任意順序的日期格式排列:其中yyyy=年,MM=月,dd=日,HH=時,mm=分,ss=秒,sss=毫秒


          擴展Date的format方法   

          Date.prototype.format=function(format){ 
          	var o = { 
          		"M+" : this.getMonth()+1, //月份,默認返回的是以0開始的,故需要+1 
          		"d+" : this.getDate(), //天數
          		"h+" : this.getHours(), //小時
          		"m+" : this.getMinutes(), //分鐘 
          		"s+" : this.getSeconds(), //秒 
          		"q+" : Math.floor((this.getMonth()+3)/3), //刻鐘 
          		"S" : this.getMilliseconds() //毫秒 
          	} 
          	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; 
          }
          使用如下:
          //使用方法 
          var now = new Date(); 
          console.log(now.format("yyyy-MM-dd hh:mm:ss")); 
          console.log(now.format("yyyy年MM月dd日hh小時mm分ss秒")); 
          console.log(now.format("yyyy年MM月dd日")); 
          console.log(now.format("MM/dd/yyyy")); 
          console.log(now.format("yyyyMMdd")); 
          console.log(now.format("yyyy-MM-dd hh:mm:ss"));
          

          /*2017-11-16 09:26:42
          YYYY年11月16日09小時26分42秒
          2017年11月16日
          11/16/2017
          20171116
          45 2017-11-16 09:26:42*/

          上面的方法可以滿足大部分需求,但是有時我們需要把時間格式轉換成幾秒前,幾分鐘前,幾小時前、幾天前等格式呢?下面就說明如何實現。


          js實現時間顯示幾天前、幾小時前或者幾分鐘前的方法

          代碼實現

          function getDateDiff(dateStr) {
          	dateStr=Date.parse(dateStr.replace(/-/gi,"/"));//如果是字符串需要轉換時間戳
              var publishTime = dateStr/1000,
                  d_seconds,
                  d_minutes,
                  d_hours,
                  d_days,
                  timeNow = parseInt(new Date().getTime()/1000),
                  d,
                  date = new Date(publishTime*1000),
                  Y = date.getFullYear(),
                  M = date.getMonth() + 1,
                  D = date.getDate(),
                  H = date.getHours(),
                  m = date.getMinutes(),
                  s = date.getSeconds();
              //小于10的在前面補0
              M=M<10?'0'+M:M;
              H=H<10?'0'+H:H;
              m=m<10?'0'+m:m;
              s=s<10?'0'+s:s;
              d = timeNow - publishTime;
              d_days = parseInt(d/86400);
              d_hours = parseInt(d/3600);
              d_minutes = parseInt(d/60);
              d_seconds = parseInt(d);
              if(d_days > 0 && d_days < 3){
                  return d_days + '天前';
              }else if(d_days <= 0 && d_hours > 0){
                  return d_hours + '小時前';
              }else if(d_hours <= 0 && d_minutes > 0){
                  return d_minutes + '分鐘前';
              }else if (d_seconds < 60) {
                  if (d_seconds <= 0) {
                      return '剛剛發表';
                  }else {
                      return d_seconds + '秒前';
                  }
              }else if (d_days >= 3 && d_days < 30){
                  return M + '-' + D + ' ' + H + ':' + m;
              }else if (d_days >= 30) {
                  return Y + '-' + M + '-' + D + ' ' + H + ':' + m;
              }
          }
          使用:  
          // 在控制臺輸出結果 
          console.log(getDateDiff('2017-11-16 08:10:10'));

          上面是由原生js實現的,除了上面的方法,我們也可以通過下面的一些方法來實現:1.使用jq插件做轉換,比如 smart-time-ago;2.使用原生js插件,比如timeago.js


          站長推薦

          1.阿里云: 本站目前使用的是阿里云主機,安全/可靠/穩定。點擊領取2000元代金券、了解最新阿里云產品的各種優惠活動點擊進入

          2.騰訊云: 提供云服務器、云數據庫、云存儲、視頻與CDN、域名等服務。騰訊云各類產品的最新活動,優惠券領取點擊進入

          3.廣告聯盟: 整理了目前主流的廣告聯盟平臺,如果你有流量,可以作為參考選擇適合你的平臺點擊進入

          鏈接: http://www.modern-decoration.com.cn/article/detial/114

          內容以共享、參考、研究為目的,不存在任何商業目的。其版權屬原作者所有,如有侵權或違規,請與小編聯系!情況屬實本人將予以刪除!

          文章投稿關于web前端網站點搜索站長推薦網站地圖站長QQ:522607023

          小程序專欄: 土味情話心理測試腦筋急轉彎幽默笑話段子句子語錄成語大全運營推廣

          国产精品高清视频免费 - 视频 - 在线观看 - 影视资讯 - 唯爱网