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