探讨PHP时间戳与日期之间的转换及应用
PHP日期函数对大家来说并不陌生,那么应该如何将两者进行相互转换呢?下面我为大家详细的介绍一下时间戳与日期的转换以及经常会用到的几种实例。
一.获取指定日期或时间戳
大家都知道PHP日期一般分为两种,一种是时间戳类型(1228348800),另一种则是我们常见的日期格式(2013-6-25)。首先我们就来学习一下时间函数的用法:
date("Y-m-d H:i",time()); 以“年-月-日 时:分”的格式显示当前时间,其中time()是获取当前的时间戳;
strtotime("2009-1-22");获取指定日期的时间戳;
strtotime("-1 day");获取昨天这个时间的时间戳;这个也是常见的PHP面试题哦!
关于strtotime的用法还有很多,例如获取上一周,明天,下周的时间戳等等,此处就不再一一介绍了;
二.获得今天零点的时间戳
要获得零点的unix时间戳,可以使用$todaytime=strtotime(“today”),然后再使用date("Y-m-d H:i",$todaytime)转换为日期;
三.php中时间戳转换为日期,并按照时间显示不同的内容,如刚刚,分钟前,小时前,今天,昨天等。
在一些博客或者微博的日志动态中,我们经常会看到一些时间显示为刚刚,几分钟前等这样的效果,等过去一定时间会显示为正常的日期。这种展现形式给用户的体验是非常好的,那么这样的效果是如何实现的呢?需要的朋友可以参考一下下面的函数:
- function transTime($ustime) {
- $ytime = date("Y-m-d H:i",$ustime);
- $rtime = date("n月j日 H:i",$ustime);
- $htime = date("H:i",$ustime);
- $time = time() - $ustime;
- $todaytime = strtotime("today");
- $time1 = time() - $todaytime;
- if($time < 60){
- $str = '刚刚';
- }else if($time < 60 * 60){
- $min = floor($time/60);
- $str = $min.'分钟前';
- }else if($time < $time1){
- $str = '今天 '.$htime;
- }else{
- $str = $rtime;
- }
- return $str;
- }
在这个函数中你可以添加更多的比较使显示的日期更加具体,比如添加 秒钟前,前天等更具体的日期;
四.php日期中补0与不补0
echo date('Y-m-d'); 显示2013-06-08
echo date('Y-n-j'); 显示2012-6-8
小编总结:从上述的几个例子中可以看出,date与strtotime这两个函数的应用是密不可分的。希望这篇文章对大家有所帮助,同时也希望能与大家多多探讨交流!