加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP时间戳函数 例如几分钟 几小时前 几天前等

发布时间:2023-06-27 14:08:16 所属栏目:PHP教程 来源:
导读:时间戳是我们在时间日期对比时常用到一个小功能,下面我先来给各位介绍strtotime时间戳转换的一些方法与利用它来做一个日期格式化的几分钟、几小时前、几天前的一个实例.1.PHP时间戳函数将日期转化为unix时间戳.echo

时间戳是我们在时间日期对比时常用到一个小功能,下面我先来给各位介绍strtotime时间戳转换的一些方法与利用它来做一个日期格式化的几分钟、几小时前、几天前的一个实例.

1.PHP时间戳函数将日期转化为unix时间戳.

echo "时间戳为:".strtotime("2012-12-21")

2.将时间戳转化为系统时间.

date('Y-m-d H:i:s',"1228348800");

3.PHP时间戳函数获取英文文本日期时间 示例如下:

便于比较,使用date将当时间戳与指定时间戳转换成系统时间.

(1)打印明天此时的时间戳strtotime(”+1 day”)

//当前时间 

echo date("Y-m-d H:i:s",time()); 

//明天此时时间 

echo date("Y-m-d H:i:s",strtotime("+1 day")); 

(2)打印昨天此时的时间戳strtotime(”-1 day”)

//当前时间 

echo date("Y-m-d H:i:s",time()) ; 

//指定时间 

echo date("Y-m-d H:i:s",strtotime("-1 day")); 

(3)打印下个星期此时的时间戳strtotime("+1 week")

//当前时间 

echo date("Y-m-d H:i:s",time()); 

//下星期时间 

echo date("Y-m-d H:i:s",strtotime("+1 week")); 

(4)打印上个星期此时的时间戳strtotime("-1 week")

//当前时间 

echo date("Y-m-d H:i:s",time()); 

//上个星期此时时间 

echo date("Y-m-d H:i:s",strtotime("-1 week")); 

(5)打印指定下星期几的时间戳strtotime("next Thursday")

//当前时间 

echo date("Y-m-d H:i:s",time()); 

//下星期几时间 

echo date("Y-m-d H:i:s",strtotime("next Thursday"));  

(6)打印指定上星期几的时间戳strtotime(”last Thursday”)

//当前时间 

echo date("Y-m-d H:i:s",time()); 

//指定时间 

echo date("Y-m-d H:i:s",strtotime("last Thursday")); 

以上PHP时间戳函数示例可知,strtotime能将任何英文文本的日期时间描述解析为Unix时间戳,我们结合mktime()或date()格式化日期时间获取指定的时间戳,实现所需要的日期时间.

话说看到别人写的这么一个函数,测试了一下,有些小毛病,对于跨年日期,没有显示年份,修改如下.

function mdate($time = NULL) { 

    $text = ''; 

    $time = $time === NULL || $time > time() ? time() : intval($time); 

    $t = time() - $time; //时间差 (秒) 

    $y = date('Y', $time)-date('Y', time());//是否跨年 

    switch($t){ 

     case $t == 0: 

       $text = '刚刚'; 

       break; 

     case $t < 60: 

      $text = $t . '秒前'; // 一分钟内 

      break; 

     case $t < 60 * 60: 

      $text = floor($t / 60) . '分钟前'; //一小时内 

      break; 

     case $t < 60 * 60 * 24: 

      $text = floor($t / (60 * 60)) . '小时前'; // 一天内 

      break; 

     case $t < 60 * 60 * 24 * 3: 

      $text = floor($time/(60*60*24)) ==1 ?'昨天 ' . date('H:i', $time) : '前天 ' . date('H:i', $time) ; //昨天和前天 

      break; 

     case $t < 60 * 60 * 24 * 30: 

      $text = date('m月d日 H:i', $time); //一个月内 

      break; 

     case $t < 60 * 60 * 24 * 365&&$y==0: 

      $text = date('m月d日', $time); //一年内 

      break; 

     default: 

      $text = date('Y年m月d日', $time); //一年以前 

      break;  

    } 

         

    return $text; 

ThinkPHP中:将写好的函数放到 Common 文件夹下,系统会自动加载的,放到这个common.php页里,common.php 固有格式,不要改名,模板中直接调用,代码如下:

{$vo.time|mdate}

例2,简单一些的代码如下:

function formatDate($sTime) { 

 //sTime=源时间,cTime=当前时间,dTime=时间差 

 $cTime  = time(); 

 $dTime  = $cTime - $sTime; 

 $dDay  = intval(date("Ymd",$cTime)) - intval(date("Ymd",$sTime)); 

 $dYear  = intval(date("Y",$cTime)) - intval(date("Y",$sTime)); 

 if( $dTime < 60 ){ 

  $dTime =  $dTime."秒前"; 

 }elseif( $dTime < 3600 ){ 

  $dTime =  intval($dTime/60)."分钟前"; 

 }elseif( $dTime >= 3600 && $dDay == 0  ){ 

  $dTime =  "今天".date("H:i",$sTime); 

 }elseif($dYear==0){ 

  $dTime =  date("m-d H:i",$sTime); 

 }else{ 

  $dTime =  date("Y-m-d H:i",$sTime); 

 } 

 return $dTime; 

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!