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

php:自定義的格式化時間方法

編輯:關於PHP編程

如:時間剛好是5分鐘前,則對應的時間戳就會被格式化為5分鐘前,不多說了,直接貼上代碼:

   /**
     * 格式化時間
     * @param integer $timestamp  時間戳
     * @param string $format  dt=日期時間 d=日期 t=時間 u=個性化 其他=自定義
     * @param integer $timeoffset  時區值
     * @param string $custom_format 自定義時間格式
     * @return string
     */
    public function dgmdate( $timestamp, $format = 'dt', $timeoffset = '9999', $custom_format = '' ) {
        $return = '';
        $now = time();
        $day_format = 'Y-n-j';
        $time_format = 'H:i:s';
        $date_format = $day_format . ' ' . $time_format;
        $offset = 8; //這裡默認是東八區,也就是北京時間
        $lang = array(
            'before' => '前',
            'day' => '天',
            'yday' => '昨天',
            'byday' => '前天',
            'hour' => '小時',
            'half' => '半',
            'min' => '分鐘',
            'sec' => '秒',
            'now' => '剛剛',
        );
        $timeoffset = $timeoffset == 9999 ? $offset : $timeoffset;
        $timestamp += $timeoffset * 3600;
        switch ( $format ) {
            case 'dt':
                $format = $date_format;
                break;
            case 'd':
                $format = $day_format;
                break;
            case 't':
                $format = $time_format;
                break;
        }
        if ( $format == 'u' ) {
            $todaytimestamp = $now - ($now + $timeoffset * 3600) % 86400 + $timeoffset * 3600;
            $s = gmdate( empty( $custom_format ) ? $date_format : $custom_format, $timestamp );
            $time = $now + $timeoffset * 3600 - $timestamp;
            if ( $timestamp >= $todaytimestamp ) {
                if ( $time > 3600 ) {
                    $return = '' . intval( $time / 3600 ) . $lang['hour'] . $lang['before'] . '';
                } elseif ( $time > 1800 ) {
                    $return = '' . $lang['half'] . $lang['hour'] . $lang['before'] . '';
                } elseif ( $time > 60 ) {
                    $return = '' . intval( $time / 60 ) . $lang['min'] . $lang['before'] . '';
                } elseif ( $time > 0 ) {
                    $return = '' . $time . $lang['sec'] . $lang['before'] . '';
                } elseif ( $time == 0 ) {
                    $return = '' . $lang['now'] . '';
                } else {
                    $return = $s;
                }
            } elseif ( ($days = intval( ($todaytimestamp - $timestamp) / 86400 )) >= 0 && $days < 7 ) {
                if ( $days == 0 ) {
                    $return = '' . $lang['yday'] . gmdate( $time_format, $timestamp ) . '';
                } elseif ( $days == 1 ) {
                    $return = '' . $lang['byday'] . gmdate( $time_format, $timestamp ) . '';
                } else {
                    $return = '' . ($days + 1) . $lang['day'] . $lang['before'] . '';
                }
            } else {
                $return = $s;
            }
        } else {
            $return = gmdate( $format, $timestamp );
        }
        return $return;
    }


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