程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP時間戳函數

PHP時間戳函數

編輯:關於PHP編程

       1.PHP時間戳函數將日期轉化為unix時間戳

      世界末日時間戳 PHP

     代碼如下  

    echo "世界末日時間戳為:".strtotime("2012-12-21")

      2.將時間戳轉化為系統時間

     代碼如下  


    date('Y-m-d H:i:s',"1228348800");

      3.PHP時間戳函數獲取英文文本日期時間 示例如下:

      便於比較,使用date將當時間戳與指定時間戳轉換成系統時間

      (1)打印明天此時的時間戳strtotime(”+1 day”)

     代碼如下  

    //當前時間
    echo date("Y-m-d H:i:s",time());
    //明天此時時間
    echo date("Y-m-d H:i:s",strtotime("+1 day"));

      (2)打印昨天此時的時間戳strtotime(”-1 day”)

     代碼如下  

    //當前時間
    echo date("Y-m-d H:i:s",time()) ;
    //指定時間
    echo date("Y-m-d H:i:s",strtotime("-1 day"));

      (3)打印下個星期此時的時間戳strtotime("+1 week")

     代碼如下  


    //當前時間
    echo date("Y-m-d H:i:s",time());
    //下星期時間
    echo date("Y-m-d H:i:s",strtotime("+1 week"));

      (4)打印上個星期此時的時間戳strtotime("-1 week")

     代碼如下  

    //當前時間
    echo date("Y-m-d H:i:s",time());
    //上個星期此時時間
    echo date("Y-m-d H:i:s",strtotime("-1 week"));

      (5)打印指定下星期幾的時間戳strtotime("next Thursday")

     代碼如下   //當前時間
    echo date("Y-m-d H:i:s",time());
    //下星期幾時間
    echo date("Y-m-d H:i:s",strtotime("next Thursday"));

      (6)打印指定上星期幾的時間戳strtotime(”last Thursday”)

     代碼如下  

    //當前時間
    echo date("Y-m-d H:i:s",time());
    //指定時間
    echo date("Y-m-d H:i:s",strtotime("last Thursday"));

      以上PHP時間戳函數示例可知,strtotime能將任何英文文本的日期時間描述解析為Unix時間戳,我們結合mktime()或date()格式化日期時間獲取指定的時間戳,實現所需要的日期時間

      話說看到別人寫的這麼一個函數,測試了一下,有些小毛病:對於跨年日期,沒有顯示年份。修改如下

     代碼如下  

    function mdate($time = NULL) {
        $text = '';
        $time = $time === NULL || $time > time() ? time() : intval($time);
        $t = time() - $time; //時間差 (秒)
        $y = date('Y', $time)-date('Y', time());//是否跨年
        switch($t){
         case $t == 0:
           $text = '剛剛';
           break;
         case $t < 60:
          $text = $t . '秒前'; // 一分鐘內
          break;
         case $t < 60 * 60:
          $text = floor($t / 60) . '分鐘前'; //一小時內
          break;
         case $t < 60 * 60 * 24:
          $text = floor($t / (60 * 60)) . '小時前'; // 一天內
          break;
         case $t < 60 * 60 * 24 * 3:
          $text = floor($time/(60*60*24)) ==1 ?'昨天 ' . date('H:i', $time) : '前天 ' . date('H:i', $time) ; //昨天和前天
          break;
         case $t < 60 * 60 * 24 * 30:
          $text = date('m月d日 H:i', $time); //一個月內
          break;
         case $t < 60 * 60 * 24 * 365&&$y==0:
          $text = date('m月d日', $time); //一年內
          break;
         default:
          $text = date('Y年m月d日', $time); //一年以前
          break; 
        }
            
        return $text;
    }

      ThinkPHP中:

      將寫好的函數放到 Common 文件夾下。系統會自動加載的。

      放到這個common.php頁裡,common.php 固有格式,不要改名。

      模板中直接調用

     代碼如下  

    {$vo.time|mdate}

      例2,簡單一些的

     代碼如下  

    function formatDate($sTime) {
     //sTime=源時間,cTime=當前時間,dTime=時間差
     $cTime  = time();
     $dTime  = $cTime - $sTime;
     $dDay  = intval(date("Ymd",$cTime)) - intval(date("Ymd",$sTime));
     $dYear  = intval(date("Y",$cTime)) - intval(date("Y",$sTime));
     if( $dTime < 60 ){
      $dTime =  $dTime."秒前";
     }elseif( $dTime < 3600 ){
      $dTime =  intval($dTime/60)."分鐘前";
     }elseif( $dTime >= 3600 && $dDay == 0  ){
      $dTime =  "今天".date("H:i",$sTime);
     }elseif($dYear==0){
      $dTime =  date("m-d H:i",$sTime);
     }else{
      $dTime =  date("Y-m-d H:i",$sTime);
     }
     return $dTime;
    }

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved