• 技术文章 >后端开发 >php教程

    php自定义的格式化时间示例代码_PHP

    2016-06-01 11:57:48原创352
    如:时间刚好是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;
    }
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php 格式化时间
    上一篇:XAMPP安装与使用方法详细解析_PHP 下一篇:使用php检测用户当前使用的浏览器是否为IE浏览器_PHP
    千万级数据并发解决方案

    相关文章推荐

    • 消息队列RabbitMQ入门与PHP实例详解• DEDECMS分页标签的有关问题,用求大神• ajax+php 无刷新有关问题。 求大牛• PHP跳转函数跟一个通用的操作提示类的编写• PHP Array函数分门别类
    1/1

    PHP中文网