Home >Backend Development >PHP Tutorial >php: Custom formatted time method_PHP tutorial

php: Custom formatted time method_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 17:18:421159browse

For example: if the time is exactly 5 minutes ago, the corresponding timestamp will be formatted as 5 minutes ago. Without further explanation, just paste the code:

   /**
     * 格式化时间
     * @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;
    }


www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/621639.htmlTechArticleFor example: the time is exactly 5 minutes ago, then the corresponding timestamp will be formatted as 5 minutes ago, Without further ado, just paste the code: /** * Format time* @param integer $timestamp timestamp...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn