<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>
            php語言

            php格式化時間戳的方法技巧

            時間:2025-01-04 12:04:48 php語言 我要投稿
            • 相關推薦

            php格式化時間戳的方法技巧

              導語:CMS中一般顯示時間比較新的文章需要顯示幾分鐘前,幾天前這樣,但是一般數據庫里面記錄的都是時間戳(至少我習慣這樣),所以就需要一個轉化的過程,下面就由小編為大家介紹一下php格式化時間戳的方法技巧,歡迎大家閱讀!

            php格式化時間戳的方法技巧

              下面是封裝好的方法

              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;

              }

              或者 更詳細的

              function formatTime($time)

              {

              $text = '';

              $time = intval($time);

              $ctime = time();

              $t = $ctime - $time; //時間差

              if ($t < 0) {

              return date('Y-m-d', $time);

              }

              ;

              $y = date('Y', $ctime) - date('Y', $time);//是否跨年

              switch ($t) {

              case $t == 0:

              $text = '剛剛';

              break;

              case $t < 60://一分鐘內

              $text = $t . '秒前';

              break;

              case $t < 3600://一小時內

              $text = floor($t / 60) . '分鐘前';

              break;

              case $t < 86400://一天內

              $text = floor($t / 3600) . '小時前'; // 一天內

              break;

              case $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) . '天前';

              }

              break;

              case $t < 31536000 && $y == 0://一年內 不跨年

              $m = date('m', $ctime) - date('m', $time) -1;

              if($m == 0) {

              $text = floor($t / 86400) . '天前';

              } else {

              $text = $m . '個月前';

              }

              break;

              case $t < 31536000 && $y > 0://一年內 跨年

              $text = (11 - date('m', $time) + date('m', $ctime)) . '個月前';

              break;

              default:

              $text = (date('Y', $ctime) - date('Y', $time)) . '年前';

              break;

              }

              return $text;

              }

              再分享一個類似的

              //格式化友好顯示時間

              function formatTime($time){

              $now=time();

              $day=date('Y-m-d',$time);

              $today=date('Y-m-d');

              $dayArr=explode('-',$day);

              $todayArr=explode('-',$today);

              //距離的天數,這種方法超過30天則不一定準確,但是30天內是準確的,因為一個月可能是30天也可能是31天

              $days=($todayArr[0]-$dayArr[0])*365+(($todayArr[1]-$dayArr[1])*30)+($todayArr[2]-$dayArr[2]);

              //距離的秒數

              $secs=$now-$time;

              if($todayArr[0]-$dayArr[0]>0 && $days>3){//跨年且超過3天

              return date('Y-m-d',$time);

              }else{

              if($days<1){//今天

              if($secs<60)return $secs.'秒前';

              elseif($secs<3600)return floor($secs/60)."分鐘前";

              else return floor($secs/3600)."小時前";

              }else if($days<2){//昨天

              $hour=date('h',$time);

              return "昨天".$hour.'點';

              }elseif($days<3){//前天

              $hour=date('h',$time);

              return "前天".$hour.'點';

              }else{//三天前

              return date('m月d號',$time);

              }

              }

              }

            【php格式化時間戳的方法技巧】相關文章:

            PHP日期函數date格式化UNIX時間的方法10-02

            PHP時間轉換Unix時間戳代碼08-19

            PHP時間戳使用實例代碼10-16

            php時間戳與日期的轉換08-02

            分析php日期轉時間戳06-11

            php時間戳與日期如何轉換09-30

            解析php時間戳與日期的轉換10-21

            php日期轉時間戳 指定日期轉換成時間戳09-26

            如何利用PHP時間轉換Unix時間戳代碼10-21

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看