方法一:
使用Javascript語言,將時間戳轉換為類似新浪微博的時間的表示方法。
要求轉換規(guī)則:
1分鐘以內顯示為:剛剛
1小時以內顯示為:N分鐘前
當天以內顯示為:今天 N點N分(如:今天 22:33)
昨天時間顯示為:昨天 N點N分(如:昨天 10:15)
當年以內顯示為:N月N日 N點N分(如:02月03日 09:33)
今年以前顯示為:N年N月N日 N點N分(如:2000年09月18日 15:59)
自定義的轉換函數:
function timestampFormat( timestamp ) { function zeroize( num ) { return (String(num).length == 1 ? "0" : "") + num; } var curTimestamp = parseInt(new Date().getTime() / 1000); //當前時間戳 var timestampDiff = curTimestamp - timestamp; // 參數時間戳與當前時間戳相差秒數 var curDate = new Date( curTimestamp * 1000 ); // 當前時間日期對象 var tmDate = new Date( timestamp * 1000 ); // 參數時間戳轉換成的日期對象 var Y = tmDate.getFullYear(), m = tmDate.getMonth() + 1, d = tmDate.getDate(); var H = tmDate.getHours(), i = tmDate.getMinutes(), s = tmDate.getSeconds(); if ( timestampDiff < 60 ) { // 一分鐘以內 return "剛剛"; } else if( timestampDiff < 3600 ) { // 一小時前之內 return Math.floor( timestampDiff / 60 ) + "分鐘前"; } else if ( curDate.getFullYear() == Y && curDate.getMonth()+1 == m && curDate.getDate() == d ) { return "今天" + zeroize(H) + ":" + zeroize(i); } else { var newDate = new Date( (curTimestamp - 86400) * 1000 ); // 參數中的時間戳加一天轉換成的日期對象 if ( newDate.getFullYear() == Y && newDate.getMonth()+1 == m && newDate.getDate() == d ) { return "昨天" + zeroize(H) + ":" + zeroize(i); } else if ( curDate.getFullYear() == Y ) { return zeroize(m) + "月" + zeroize(d) + "日 " + zeroize(H) + ":" + zeroize(i); } else { return Y + "年" + zeroize(m) + "月" + zeroize(d) + "日 " + zeroize(H) + ":" + zeroize(i); } } }
參數的時間不能大于當前時間,大于當前時間會返回“剛剛”。
用法展示:
timestampFormat(1326170770); //2012年01月10日 12:46 timestampFormat(Date.parse("2016-10-11 15:26:10")/1000); //剛剛 timestampFormat(Date.parse("2016-10-11 15:10:10")/1000); //16分鐘前 timestampFormat(Date.parse("2016-10-11 10:10:10")/1000); //今天10:10 timestampFormat(Date.parse("2016-10-10 10:10:10")/1000); //昨天10:10 timestampFormat(Date.parse("2016-02-10 10:10:10")/1000); //02月10日 10:10 timestampFormat(Date.parse("2012-10-10 10:10:10")/1000); //2012年10月10日 10:10方法二
在新浪微博首頁看到每條微博后邊顯示的時間并不是標準的年-月-日格式,而是經過換算的時間差,如:發(fā)表于5分鐘前、發(fā)表于“2小時前”,比起標準的時間顯示格式,貌似更加直觀和人性化。要實現(xiàn)類似功能,用JS就可以,實現(xiàn)方法如下:
//JavaScript函數: var minute = 1000 * 60; var hour = minute * 60; var day = hour * 24; var halfamonth = day * 15; var month = day * 30; function getDateDiff(dateTimeStamp){ var now = new Date().getTime(); var diffValue = now - dateTimeStamp; if(diffValue < 0){ //若日期不符則彈出窗口告之 //alert("結束日期不能小于開始日期!"); } var monthC =diffValue/month; var weekC =diffValue/(7*day); var dayC =diffValue/day; var hourC =diffValue/hour; var minC =diffValue/minute; if(monthC>=1){ result="發(fā)表于" + parseInt(monthC) + "個月前"; } else if(weekC>=1){ result="發(fā)表于" + parseInt(weekC) + "周前"; } else if(dayC>=1){ result="發(fā)表于"+ parseInt(dayC) +"天前"; } else if(hourC>=1){ result="發(fā)表于"+ parseInt(hourC) +"個小時前"; } else if(minC>=1){ result="發(fā)表于"+ parseInt(minC) +"分鐘前"; }else result="剛剛發(fā)表"; return result; }
若你得到的時間格式不是時間戳,可以使用下面的JavaScript函數把字符串轉換為時間戳, 本函數的功能相當于JS版的strtotime:
//js函數代碼:字符串轉換為時間戳 function getDateTimeStamp(dateStr){ return Date.parse(dateStr.replace(/-/gi,"/")); }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/94853.html
摘要:經常在朋友圈,空間微博上看到動態(tài)的發(fā)布時間評論時間,都顯示,昨天,前天,幾天前,比起直接顯示幾月幾日幾分幾秒要優(yōu)雅的多。獲取已經過了多久時間轉換剛剛幾分鐘前幾小時前今天昨天前天幾天前時間戳今天最大時間剛剛分鐘前小時前今天昨天前天天前原文 經常在朋友圈,QQ空間、微博上看到動態(tài)的發(fā)布時間、評論時間,都顯示,昨天,前天,幾天前,比起直接顯示幾月幾日幾分幾秒要優(yōu)雅的多。 于是自己的項目也想采...
摘要:袁鳴把價格數量一一進行記錄,做了質檢記錄合格后辦理了入庫放入冰箱。但這回家宴與上次的家宴有什么不一樣嗎袁鳴首先把做每道菜的整個過程,用什么資源物料多長時間邏輯關系等等都分別錄入到模塊中。 此文已由作者王攀授權網易云社區(qū)發(fā)布。 歡迎訪問網易云社區(qū),了解更多網易技術產品運營經驗。 引言: 目前我們團隊在做的供應鏈協(xié)同決策系統(tǒng)(簡稱河洛,取河洛交匯,河圖洛書之意),定位相當于一個計劃、控制與...
摘要:前后經過九個月,我翻譯的官方版本中文文檔可以發(fā)布第一個較為完整的版本了。這點原本是最重要的,但讓位于符合中文習慣,是因為如果譯本有機翻痕跡,給人的品質感和可信度就降低了更準確和更優(yōu)雅的翻譯風格。 showImg(/img/remote/1460000006773992); 前后經過九個月,我翻譯的Spring MVC官方4.2.4版本中文文檔可以發(fā)布第一個較為完整的版本了。譯文上盡量做...
摘要:今天在此向大家推薦一種非常流行的版本號命名規(guī)則語義化版本。語義化版本約定修訂版本號代表在和之前接口不變的前提下修正了。就是專門用于語義化版本號檢查的庫,其也是語義化版本標準的制定者。 NPM酷庫,每天兩分鐘,了解一個流行NPM庫。 軟件的命運就是不斷維護、更新、迭代,所以我們用版本號來區(qū)分一個軟件的不同時期和形態(tài),版本號的命名方式有各種各樣,有的以小數表示(幾點幾),有的以日期表示,有...
閱讀 1572·2021-11-25 09:43
閱讀 2476·2019-08-30 15:54
閱讀 2938·2019-08-30 15:53
閱讀 1087·2019-08-30 15:53
閱讀 747·2019-08-30 15:52
閱讀 2538·2019-08-26 13:36
閱讀 807·2019-08-26 12:16
閱讀 1210·2019-08-26 12:13