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

 更新时间:2013年12月05日 17:33:36   作者:   我要评论
时间刚好是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;
}

相关文章

  • ThinkPHP3.2.3框架实现执行原生SQL语句的方法示例

    ThinkPHP3.2.3框架实现执行原生SQL语句的方法示例

    这篇文章主要介绍了ThinkPHP3.2.3框架实现执行原生SQL语句的方法,结合实例形式分析了thinkPHP3.2.3框架针对查询、添加、修改、删除等原生SQL操作相关实现技巧,需要的朋友可以参考下
    2019-04-04
  • php 参数过滤、数据过滤详解

    php 参数过滤、数据过滤详解

    这篇文章给大家介绍php参数过滤及php数据过滤,包括php提交数据过滤的基本原则,php简单的数据过滤,感兴趣的朋友一起学习吧
    2015-10-10
  • php实现微信扫码支付

    php实现微信扫码支付

    最近一段弄微信网页扫码支付,看官方文档是晕头转向。其实扫码支付很简单,只是让官网指来指去变的很麻烦,我想如果有个实例,会容易很多。下面就把实例分享给大家
    2017-03-03
  • PHP函数引用返回的实例详解

    PHP函数引用返回的实例详解

    其实PHP函数引用与php中变量引用一样,都使用的是&符号了,那么今天我们就一起来看看函数的引用返回的一些例子,有需要的朋友们可以参考借鉴,下面来一起看看吧。
    2016-09-09
  • yii2学习教程之5种内置行为类详解

    yii2学习教程之5种内置行为类详解

    这篇文章主要给大家介绍了关于yii2学习教程之5种内置行为类的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用yii2具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
    2017-08-08
  • PHP register_shutdown_function函数的深入解析

    PHP register_shutdown_function函数的深入解析

    本篇文章是对PHP register_shutdown_function函数进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • 浅谈Laravel队列实现原理解决问题记录

    浅谈Laravel队列实现原理解决问题记录

    本篇文章主要介绍了浅谈Laravel队列实现原理解决问题记录,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • php+ajax发起流程和审核流程(以请假为例)

    php+ajax发起流程和审核流程(以请假为例)

    这篇文章主要介绍了php+ajax发起流程和审核流程(以请假为例) ,需要的朋友可以参考下
    2017-06-06
  • PHP读取大文件的类SplFileObject使用介绍

    PHP读取大文件的类SplFileObject使用介绍

    一般读取文件我们用fopen 或者 file_get_contents ,前者可以循环读取,后者可以一次性读取,但都是将文件内容一次性加载来操作。
    2014-04-04
  • smarty模板引擎之配置文件数据和保留数据

    smarty模板引擎之配置文件数据和保留数据

    这篇文章主要介绍了smarty模板引擎之配置文件数据和保留数据的方法,实例分析了smarty模板引擎配置文件数据及获取数据的具体技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03

最新评论