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