摘要:經(jīng)常在朋友圈,空間微博上看到動(dòng)態(tài)的發(fā)布時(shí)間評(píng)論時(shí)間,都顯示,昨天,前天,幾天前,比起直接顯示幾月幾日幾分幾秒要優(yōu)雅的多。獲取已經(jīng)過(guò)了多久時(shí)間轉(zhuǎn)換剛剛幾分鐘前幾小時(shí)前今天昨天前天幾天前時(shí)間戳今天最大時(shí)間剛剛分鐘前小時(shí)前今天昨天前天天前原文
經(jīng)常在朋友圈,QQ空間、微博上看到動(dòng)態(tài)的發(fā)布時(shí)間、評(píng)論時(shí)間,都顯示,昨天,前天,幾天前,比起直接顯示幾月幾日幾分幾秒要優(yōu)雅的多。
于是自己的項(xiàng)目也想采用這種優(yōu)雅直觀的方式,網(wǎng)上找了各種計(jì)算相差幾天的的例子,都是直接將時(shí)間戳相見(jiàn)除以86400,比如現(xiàn)在是17:08,動(dòng)態(tài)更新的時(shí)間為前天22:00,這種方式計(jì)算的相差天數(shù)為1,而不是兩天前。
實(shí)際情況應(yīng)該是,昨天任何時(shí)間都算一天前,前天任意時(shí)間都算2天前,所以自己琢磨了一番,去動(dòng)態(tài)更新時(shí)間與今天23:59:59相差的時(shí)間秒數(shù)與86400(24 x 3600)相除后,向下取整,這樣就得到了相差的天數(shù),比如昨天00:00~昨天23:59:59的任何時(shí)間與今天的23:59:59,都相差 86400~(86400 x 2) 天,也就是2天。
/** * 獲取已經(jīng)過(guò)了多久 * PHP時(shí)間轉(zhuǎn)換 * 剛剛、幾分鐘前、幾小時(shí)前 * 今天昨天前天幾天前 * @param string $targetTime 時(shí)間戳 * @return string */ function get_last_time($targetTime) { // 今天最大時(shí)間 $todayLast = strtotime(date("Y-m-d 23:59:59")); $agoTimeTrue = time() - $targetTime; $agoTime = $todayLast - $targetTime; $agoDay = floor($agoTime / 86400); if ($agoTimeTrue < 60) { $result = "剛剛"; } elseif ($agoTimeTrue < 3600) { $result = (ceil($agoTimeTrue / 60)) . "分鐘前"; } elseif ($agoTimeTrue < 3600 * 12) { $result = (ceil($agoTimeTrue / 3600)) . "小時(shí)前"; } elseif ($agoDay == 0) { $result = "今天 " . date("H:i", $targetTime); } elseif ($agoDay == 1) { $result = "昨天 " . date("H:i", $targetTime); } elseif ($agoDay == 2) { $result = "前天 " . date("H:i", $targetTime); } elseif ($agoDay > 2 && $agoDay < 16) { $result = $agoDay . "天前 " . date("H:i", $targetTime); } else { $format = date("Y") != date("Y", $targetTime) ? "Y-m-d H:i" : "m-d H:i"; $result = date($format, $targetTime); } return $result; }
原文 http://www.tech1024.cn/origin...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/30670.html
摘要:格式化時(shí)間戳中一般顯示時(shí)間比較新的文章需要顯示幾分鐘前,幾天前這樣,但是一般數(shù)據(jù)庫(kù)里面記錄的都是時(shí)間戳至少我習(xí)慣這樣,所以就需要一個(gè)轉(zhuǎn)化的過(guò)程,根據(jù)網(wǎng)上的資料加上自己的修改整理封裝了兩段代碼下面是封裝好的方法剛剛秒前分鐘前小時(shí)前天前或 格式化時(shí)間戳 tags: PHP CMS中一般顯示時(shí)間比較新的文章需要顯示幾分鐘前,幾天前這樣,但是一般數(shù)據(jù)庫(kù)里面記錄的都是時(shí)間戳(至少我習(xí)慣這樣),所...
摘要:在不犧牲性能的情況下實(shí)現(xiàn)相對(duì)時(shí)間的本地化格式化。用法與示例以下示例展示了如何使用英語(yǔ)創(chuàng)建相對(duì)時(shí)間格式化程序。需要注意的是傳遞給構(gòu)造函數(shù)的參數(shù)必須是一個(gè)語(yǔ)言標(biāo)記,或者是一個(gè)包括多個(gè)語(yǔ)言標(biāo)記的數(shù)組。 原文:The Intl.RelativeTimeFormat API 作者:Mathias Bynens(@mathias) 現(xiàn)代 Web 應(yīng)用程序通常使用昨天,42秒前或3個(gè)月之類的短語(yǔ),...
摘要:毫秒轉(zhuǎn)換友好的顯示格式輸出格式小時(shí)分鐘秒獲取當(dāng)前時(shí)間戳分鐘秒小時(shí)分鐘秒超過(guò)天秒毫秒轉(zhuǎn)換友好的顯示格式毫秒轉(zhuǎn)換友好的顯示格式輸出格式小時(shí)前獲取時(shí)間戳去掉時(shí)間戳后三位,與時(shí)間戳保持一致存儲(chǔ)轉(zhuǎn)換值十分鐘內(nèi)剛剛超過(guò)十分鐘少于小時(shí)分鐘前 /** * 毫秒轉(zhuǎn)換友好的顯示格式 * 輸出格式:21小時(shí)28分鐘15秒 * @param {[type]} time [description] *...
方法一: 使用Javascript語(yǔ)言,將時(shí)間戳轉(zhuǎn)換為類似新浪微博的時(shí)間的表示方法。要求轉(zhuǎn)換規(guī)則:1分鐘以內(nèi)顯示為:剛剛1小時(shí)以內(nèi)顯示為:N分鐘前當(dāng)天以內(nèi)顯示為:今天 N點(diǎn)N分(如:今天 22:33)昨天時(shí)間顯示為:昨天 N點(diǎn)N分(如:昨天 10:15)當(dāng)年以內(nèi)顯示為:N月N日 N點(diǎn)N分(如:02月03日 09:33)今年以前顯示為:N年N月N日 N點(diǎn)N分(如:2000年09月18日 15:59)...
閱讀 2457·2021-11-23 09:51
閱讀 1872·2021-10-13 09:40
閱讀 1384·2021-09-30 10:01
閱讀 594·2021-09-26 09:46
閱讀 2250·2021-09-23 11:55
閱讀 1395·2021-09-10 10:51
閱讀 2261·2021-09-09 09:33
閱讀 2234·2019-08-29 17:25