将数据库中保存的时间戳转换为过去的时间格式
2015-02-06 14:21
274 查看
这个功能一般用在微博、博客的文章发布时间显示上。例如:在新浪微博发布了一篇微博,如果是今天发布的它会显示XX秒、XX小时前发布而不是显示具体的时间。如果转发一篇以前发布的微博则原微博显示其发布的时间。
那么如何实现呢?代码如下:
解读:
1、首先我们要获取当前时间即:now=time();2、我们要获取今天0时0分0秒的时间戳,用于比对数据库中的时间是今天还是昨天的。即:tody = strtotime(date(‘Y-m-d’));
3、获取数据库中的时间戳和当前时间的差值。即:diff=now - $time;
4、通过switch判断数据库中的时间戳来显示对应的时间格式(时、分、秒、具体时间)
那么如何实现呢?代码如下:
/**格式化时间函数 * @param $time 需要格式化的时间戳 */ function time_format ($time) { $now = time(); $tody = strtotime(date('Y-m-d')); $diff = $now - $time; $str = ''; switch ($time) { case $diff < 60: $str = $diff . '秒前'; break; case $diff < 3600: $str = floor($diff / 60) . '分钟前'; break; case $diff < (3600 * 8): $str = floor($diff / 3600) . '小时前'; break; case $time > $tody: $str = '今天' . date('Y-m-d H:i:s', $time); break; default: $str = date('Y-m-d H:i:s', $time); } return $str; } $time = 1423110837;//模拟保存在数据库中的时间戳 echo time_format($time);
解读:
1、首先我们要获取当前时间即:now=time();2、我们要获取今天0时0分0秒的时间戳,用于比对数据库中的时间是今天还是昨天的。即:tody = strtotime(date(‘Y-m-d’));
3、获取数据库中的时间戳和当前时间的差值。即:diff=now - $time;
4、通过switch判断数据库中的时间戳来显示对应的时间格式(时、分、秒、具体时间)
相关文章推荐
- 转换数据库时间字段格式函数
- joson返回数据库的时间格式在前台用js转换
- 导出数据库数据,转换时间格式----mysqldump SCP python
- 往数据库中保存时间格式为 yyyy/MM/dd (SimpleDateFormat )
- 从数据库取到数据转换json后,时间格式带上T的解决办法
- json返回数据库的时间格式为/Date(1332919782070)/,在前台用js怎么转换
- flex 如何转换数据库中的时间格式,并写到datagrid等控件中
- 数据库时间转换成字符串格式大全
- java.sql.Data java.util.Data的转换 及时间格式化后的两者之间的转换,数据库中时间存储格式
- 从数据库取到数据转换json后,时间格式带上T的解决办法
- CK+表情数据库转换为python数据格式保存(.pkl)
- 用js转换joson返回数据库的时间格式为/Date(*************)/
- 一条SQL查询某张表时间转换格式后保存另外一张表
- 转换数据库时间字段格式函数
- 将数据库里面的时间从1970年1月1日8:00开始的秒数转换成日期格式
- 转换GMT秒数为日期时间格式-C#源码。
- 把文件以二进制格式或base64字符串形式保存到数据库中,并实现下载功能源码
- ASP.NET:C#中时间格式的转换
- ASP中时间格式的转换
- 转换GMT秒数为日期时间格式-VC++源码。