Heim > Backend-Entwicklung > PHP-Tutorial > php:自定义的格式化时间方法_PHP教程

php:自定义的格式化时间方法_PHP教程

WBOY
Freigeben: 2016-07-13 17:18:42
Original
1156 Leute haben es durchsucht

如:时间刚好是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 = '<span title="' . $s . "">' . intval( $time / 3600 ) . $lang['hour'] . $lang['before'] . '</span>';
                } elseif ( $time > 1800 ) {
                    $return = '<span title="' . $s . "">' . $lang['half'] . $lang['hour'] . $lang['before'] . '</span>';
                } elseif ( $time > 60 ) {
                    $return = '<span title="' . $s . "">' . intval( $time / 60 ) . $lang['min'] . $lang['before'] . '</span>';
                } elseif ( $time > 0 ) {
                    $return = '<span title="' . $s . "">' . $time . $lang['sec'] . $lang['before'] . '</span>';
                } elseif ( $time == 0 ) {
                    $return = '<span title="' . $s . "">' . $lang['now'] . '</span>';
                } else {
                    $return = $s;
                }
            } elseif ( ($days = intval( ($todaytimestamp - $timestamp) / 86400 )) >= 0 && $days < 7 ) {
                if ( $days == 0 ) {
                    $return = '<span title="' . $s . "">' . $lang['yday'] . gmdate( $time_format, $timestamp ) . '</span>';
                } elseif ( $days == 1 ) {
                    $return = '<span title="' . $s . "">' . $lang['byday'] . gmdate( $time_format, $timestamp ) . '</span>';
                } else {
                    $return = '<span title="' . $s . "">' . ($days + 1) . $lang['day'] . $lang['before'] . '</span>';
                }
            } else {
                $return = $s;
            }
        } else {
            $return = gmdate( $format, $timestamp );
        }
        return $return;
    }
Nach dem Login kopieren


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/621639.htmlTechArticle如:时间刚好是5分钟前,则对应的时间戳就会被式化为5分钟前,不多说了,直接贴上代码: /** * 格式化时间 * @param integer $timestamp 时间戳...
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage