php将几分钟前、几小时前还原成时间戳格式

线报酷 1

今天在做一个规则的时候发现抓取到的格式是几分钟前,几小时前的时间提示,这时候我们要把这些东西转换成正确的时间戳方便我们的后续操作,这个获取几分钟前是根据现在的时间进行判断,肯定会和正确时间有一丢丢偏移,那么我们来看代码吧。


将几分钟前的时间转换成时间戳,轻松获取转换成24小时格式

<?php
header("Content-type: text/html; charset=utf8");  
date_default_timezone_set("Asia/Shanghai");   //设置时区

echo shijian("50分钟前");  //输出50分钟前时间戳
echo date('Y-m-d H:i:s', shijian("50分钟前")); 

function shijian($xiufu) {
    $nowtime = time(); //获取当前时间戳
    preg_match('/\d+/',$xiufu,$str); //提取传入数字
    $str=$str[0];
    if (strpos($xiufu,'秒前') !== false) {
    $jieguo=$nowtime - $str; //时间戳减去秒数
    }elseif (strpos($xiufu,'分钟前') !== false) {
    $jieguo=$nowtime - $str*60;    
    }elseif (strpos($xiufu,'小时前') !== false) {
    $jieguo=$nowtime - $str*60*60;    
    }elseif (strpos($xiufu,'天前') !== false) {
    $jieguo=$nowtime - $str*60*60*24;        
    }else{
     $jieguo="错误!" ;  
    }
  
  return $jieguo;
}


另外分享将时间戳转换成几分钟前,几小时前的php代码

/**
 * 方法一
 * @static
 * @access public
 * @param datetime $times 日期
 * @return string 返回大致日期
 * @example 示例 ueTime('') */function ueTime($times) {    if ($times == '' || $times == 0) {        return false;
    }    //完整时间戳
    $strtotime = is_int($times) ? $times : strtotime($times);    $times_day = date('Y-m-d', $strtotime);    $times_day_strtotime = strtotime($times_day);    //今天
    $nowdate_str = strtotime(date('Y-m-d'));    //精确的时间间隔(秒)
    $interval = time() - $strtotime;    //今天的
    if ($times_day_strtotime == $nowdate_str) {        //小于一分钟
        if ($interval < 60) {            $pct = sprintf("%d秒前", $interval);
        }        //小于1小时
        elseif ($interval < 3600) {            $pct = sprintf("%d分钟前", ceil($interval / 60));
        } else {            $pct = sprintf("%d小时前", floor($interval / 3600));
        }
    }    //昨天的
    elseif ($times_day_strtotime == strtotime(date('Y-m-d', strtotime('-1 days')))) {        $pct = '昨天' . date('H:i', $strtotime);
    }    //前天的
    elseif ($times_day_strtotime == strtotime(date('Y-m-d', strtotime('-2 days')))) {        $pct = '前天' . date('H:i', $strtotime);
    }    //一个月以内
    elseif ($interval < (3600 * 24 * 30)) {        $pct = date('m月d日', $strtotime);
    }    //一年以内
    elseif ($interval < (3600 * 24 * 365)) {        $pct = date('m月d日', $strtotime);
    }    //一年以上
    else {        $pct = date('Y年m月d日', $strtotime);
    }    return $pct;
}
<?php  
//方法二
header("Content-type: text/html; charset=utf8");  
date_default_timezone_set("Asia/Shanghai");   //设置时区  function time_tran($the_time) {  
    $now_time = date("Y-m-d H:i:s", time());  
    //echo $now_time;  
    $now_time = strtotime($now_time);  
    $show_time = strtotime($the_time);  
    $dur = $now_time - $show_time;  
    if ($dur < 0) {  
        return $the_time;  
    } else {  
        if ($dur < 60) {  
            return $dur . '秒前';  
        } else {  
            if ($dur < 3600) {  
                return floor($dur / 60) . '分钟前';  
            } else {  
                if ($dur < 86400) {  
                    return floor($dur / 3600) . '小时前';  
                } else {  
                    if ($dur < 259200) {//3天内  
                        return floor($dur / 86400) . '天前';  
                    } else {  
                        return $the_time;  
                    }  
                }  
            }  
        }  
    }  
}  
  
  
echo time_tran("2014-7-8 19:22:01");  
?>
<?php  

//方法三
header("Content-type: text/html; charset=utf8");  
date_default_timezone_set("Asia/Shanghai");   //设置时区  function time_tran($the_time) {  
   
function wordTime($time) {        $time = (int) substr($time, 0, 10);        $int = time() - $time;        $str = '';        if ($int <= 2){            $str = sprintf('刚刚', $int);
        }elseif ($int < 60){            $str = sprintf('%d秒前', $int);
        }elseif ($int < 3600){            $str = sprintf('%d分钟前', floor($int / 60));
        }elseif ($int < 86400){            $str = sprintf('%d小时前', floor($int / 3600));
        }elseif ($int < 2592000){            $str = sprintf('%d天前', floor($int / 86400));
        }else{            $str = date('Y-m-d H:i:s', $time);
        }        return $str;
    }


线报酷内部交流互动版块 (已有1条评论)

交流列表