摘要:格式化時(shí)間戳中一般顯示時(shí)間比較新的文章需要顯示幾分鐘前,幾天前這樣,但是一般數(shù)據(jù)庫里面記錄的都是時(shí)間戳至少我習(xí)慣這樣,所以就需要一個(gè)轉(zhuǎn)化的過程,根據(jù)網(wǎng)上的資料加上自己的修改整理封裝了兩段代碼下面是封裝好的方法剛剛秒前分鐘前小時(shí)前天前或
格式化時(shí)間戳 tags: PHP
CMS中一般顯示時(shí)間比較新的文章需要顯示幾分鐘前,幾天前這樣,但是一般數(shù)據(jù)庫里面記錄的都是時(shí)間戳(至少我習(xí)慣這樣),所以就需要一個(gè)轉(zhuǎn)化的過程,根據(jù)網(wǎng)上的資料加上自己的修改整理封裝了兩段代碼
下面是封裝好的方法
function formatTime($time) { $time = (int) substr($time, 0, 10); $int = time() - $time; $str = ""; if ($int <= 2){ $str = sprintf("剛剛", $int); }elseif ($int < 60){ $str = sprintf("%d秒前", $int); }elseif ($int < 3600){ $str = sprintf("%d分鐘前", floor($int / 60)); }elseif ($int < 86400){ $str = sprintf("%d小時(shí)前", floor($int / 3600)); }elseif ($int < 2592000){ $str = sprintf("%d天前", floor($int / 86400)); }else{ $str = date("Y-m-d H:i:s", $time); } return $str; }
或者 更詳細(xì)的
public static function formatTime($time) { if (is_int($time)) { $time = intval($time); } elseif ($time instanceof Carbon) { $time = intval(strtotime($time)); } else { return ""; } $ctime = time(); $t = $ctime - $time; //時(shí)間差 (秒) if ($t < 0) { return date("Y-m-d", $time); } $y = intval(date("Y", $ctime) - date("Y", $time));//是否跨年 if ($t == 0) { $text = "剛剛"; } elseif ($t < 60) {//一分鐘內(nèi) $text = $t . "秒前"; } elseif ($t < 3600) {//一小時(shí)內(nèi) $text = floor($t / 60) . "分鐘前"; } elseif ($t < 86400) {//一天內(nèi) $text = floor($t / 3600) . "小時(shí)前"; // 一天內(nèi) } elseif ($t < 2592000) {//30天內(nèi) if ($time > strtotime(date("Ymd", strtotime("-1 day")))) { $text = "昨天"; } elseif ($time > strtotime(date("Ymd", strtotime("-2 days")))) { $text = "前天"; } else { $text = floor($t / 86400) . "天前"; } } elseif ($t < 31536000 && $y == 0) {//一年內(nèi) 不跨年 $m = date("m", $ctime) - date("m", $time) - 1; if ($m == 0) { $text = floor($t / 86400) . "天前"; } else { $text = $m . "個(gè)月前"; } } elseif ($t < 31536000 && $y > 0) {//一年內(nèi) 跨年 $text = (12 - date("m", $time) + date("m", $ctime)) . "個(gè)月前"; } else { $text = (date("Y", $ctime) - date("Y", $time)) . "年前"; } return $text; }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/22143.html
摘要:毫秒轉(zhuǎn)換友好的顯示格式輸出格式小時(shí)分鐘秒獲取當(dāng)前時(shí)間戳分鐘秒小時(shí)分鐘秒超過天秒毫秒轉(zhuǎn)換友好的顯示格式毫秒轉(zhuǎn)換友好的顯示格式輸出格式小時(shí)前獲取時(shí)間戳去掉時(shí)間戳后三位,與時(shí)間戳保持一致存儲轉(zhuǎn)換值十分鐘內(nèi)剛剛超過十分鐘少于小時(shí)分鐘前 /** * 毫秒轉(zhuǎn)換友好的顯示格式 * 輸出格式:21小時(shí)28分鐘15秒 * @param {[type]} time [description] *...
摘要:有效周期標(biāo)識符如下年月日周時(shí)分秒間隔約定中既可以有時(shí)間也可以有日期,如果有時(shí)間需要在日期和時(shí)間之間加上字母,例如,間隔約定表示間隔兩天,間隔約定表示間隔兩天五小時(shí)兩分鐘。 前言 以前更改時(shí)間格式的時(shí)候經(jīng)常使用date方法,后來知道php竟然自帶datetime類處理時(shí)間格式,記錄一下用法,方便以后使用 實(shí)例化 在yii 1.1中,可以直接寫成 $datetime = new DateT...
摘要:寫在前面前兩天寫了一篇常見的獲取時(shí)間戳,今天來一篇續(xù)集吧,日期和時(shí)間戳的互轉(zhuǎn)預(yù)備知識知道什么是時(shí)間戳即距離年月日時(shí)分秒的毫秒數(shù)如果你要用到的是秒,那也行,單位問題而已。同樣的道理要會把時(shí)間戳轉(zhuǎn)化成我們想要的日期格式。 寫在前面 前兩天寫了一篇《常見的Javascript獲取時(shí)間戳》,今天來一篇續(xù)集吧,日期和時(shí)間戳的互轉(zhuǎn) 預(yù)備知識 知道什么是時(shí)間戳:即距離1970年01月01日00時(shí)0...
摘要:在不犧牲性能的情況下實(shí)現(xiàn)相對時(shí)間的本地化格式化。用法與示例以下示例展示了如何使用英語創(chuàng)建相對時(shí)間格式化程序。需要注意的是傳遞給構(gòu)造函數(shù)的參數(shù)必須是一個(gè)語言標(biāo)記,或者是一個(gè)包括多個(gè)語言標(biāo)記的數(shù)組。 原文:The Intl.RelativeTimeFormat API 作者:Mathias Bynens(@mathias) 現(xiàn)代 Web 應(yīng)用程序通常使用昨天,42秒前或3個(gè)月之類的短語,...
閱讀 1584·2021-09-22 15:52
閱讀 3494·2021-09-22 14:59
閱讀 2925·2021-09-02 15:12
閱讀 1008·2021-08-20 09:35
閱讀 1601·2019-08-30 14:09
閱讀 2736·2019-08-30 13:56
閱讀 1687·2019-08-26 18:27
閱讀 3389·2019-08-26 13:37