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

    关于php自定义的格式化时间

    不言不言2018-06-21 14:58:31原创848
    这篇文章主要介绍了关于php自定义的格式化时间,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

    时间刚好是5分钟前,则对应的时间戳就会被格式化为5分钟前,自定义的格式化时间方法如下,感兴趣的朋友可以参考下

    如:时间刚好是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; 
    }

    以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

    相关推荐:

    关于php中使用exec,system等函数调用系统命令的方法

    php将时间差转换为字符串的实现

    以上就是关于php自定义的格式化时间的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php 格式化时间
    上一篇:关于php中使用exec,system等函数调用系统命令的方法 下一篇:关于php中webservice实现的简单架构
    Web大前端开发直播班

    相关文章推荐

    • PHP详细解析之phar• 求好手详解关于PHP的前景 • 第一次做网站,关于网站构造方面想请问上 • php页面重定向的有关问题 • phpexcel合并有关问题求解,希望给点思路,多谢

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网