在PHP和Android中将TimeStamp转换为可读时间

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了在PHP和Android中将TimeStamp转换为可读时间脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我将数据从服务器发送到 android并且我在数据库中有一个字段作为时间戳,我也发送数据作为 JSON但是当我发送数据时它显示如下日期:date“:1463232118”或当我删除’strtotime ‘函数代码显示如下日期:2016-05-18 10:24:32但是当我把’strtotime’放在一边JSON数组时,它将被发送到andROId端,我在浏览器中打开它显示像这样:4周前或3天前它是正确的,但当我发送它作为JSON数组时,它显示:日期“:1463232118”.这是我完整的 PHP代码指南,或者添加知道的东西

<?PHP

require_once("include.PHP");

$tbl_name ="ads";
$order_by ="id";

$records_limIT= 6;


$connect = @MysqLi_connect($hostname,$username,$password,$database);

if( $connect )
{
    @MysqLi_query($connect,"SET CHARACTER SET utf8;");

    $temp1 = @MysqLi_query($connect,"SELECT COUNT (*) From".$tbl_name);

    $temp2 = @MysqLi_fetch_row($temp1);

    $total_records = $temp2[0];

    if(isset( $_GET['page']))
    {
        $page = $_GET['page'];
        $offset = $page * $records_limit;
    }
    else
    {
        $page = 0;
        $offset = 0;
    }

    $my_query = "SELECT * From ".$tbl_name." ORDER BY ".$order_by." DESC LIMIT ".$offset.",".$records_limit;

    $result = @MysqLi_query($connect,$my_query);
    if( $result )
    {
        $response['ads'] = array();
        $response['success'] = 1;  


        while( $row = @MysqLi_fetch_array($result) )
        {
            $ads = array();

            $curenttime=$row['date'];
            $time_ago =strtotime($curenttime);

            $ads['id']  = $row['id'];
            $ads['title']   = $row['title'];    
            $ads['intro']   = $row['intro'];
                    $ads['image']   = $sitename . $row['image'];
            $ads['seller']  = $row['seller'];
            $ads['phone']   = $row['phone'];

            $ads['date']    = $time_ago;

            $q = "SELECT name FROM cat WHERE id='".$row['cat_id']."'";
            $temp1 = @MysqLi_query($connect,$q);
            $temp2 = @MysqLi_fetch_row($temp1);
            $cat = $temp2[0];


            $ads['cat'] = $cat;         

            array_push( $response['ads'],$ads);
        }
    }
    else
    {
        $response['success'] = 0;
        $response['message'] = "nothing";
    }

    echo(json_encode($response)); 


    @MysqLi_close( $connect );
}



function timeAgo($time_ago){

$cur_time   = time();
$time_elapsed   = $cur_time - $time_ago;
$seconds    = $time_elapsed ;
$minutes    = round($time_elapsed / 60 );
$hours      = round($time_elapsed / 3600);
$days       = round($time_elapsed / 86400 );
$weeks      = round($time_elapsed / 604800);
$months     = round($time_elapsed / 2600640 );
$years      = round($time_elapsed / 31207680 );
// Seconds
if($seconds <= 60){
    echo "$seconds seconds ago";
}
//Minutes
else if($minutes <=60){
    if($minutes==1){
        echo "one minute ago";
    }
    else{
        echo "$minutes minutes ago";
    }
}
//Hours
else if($hours <=24){
    if($hours==1){
        echo "an hour ago";
    }else{
        echo "$hours hours ago";
    }
}
//Days
else if($days <= 7){
    if($days==1){
        echo "yesterday";
    }else{
        echo "$days days ago";
    }
}
//Weeks
else if($weeks <= 4.3){
    if($weeks==1){
        echo "a week ago";
    }else{
        echo "$weeks weeks ago";
    }
}
//Months
else if($months <=12){
    if($months==1){
        echo "a month ago";
    }else{
        echo "$months months ago";
    }
}
//Years
else{
    if($years==1){
        echo "one year ago";
    }else{
        echo "$years years ago";
    }
}
}

?>

下面是我输入$curenttime = $ads [‘date’]时的输出;
                                $time_ago = strtotime($curenttime);
                                echo timeAgo($time_ago);阵列外面.

5 hours ago5 hours ago4 days ago4 days ago4 days ago

解决方法

timeAgo函数应该返回值而不是echo.

你忘了打电话给$ads [‘date’] = timeAgo($time_ago);这就是为什么你的JSON中有strtotime值而不是之前的转换值.

编辑

要从timeAgo()函数返回值,只需执行以下操作:

return $seconds . " seconds ago";

脚本宝典总结

以上是脚本宝典为你收集整理的在PHP和Android中将TimeStamp转换为可读时间全部内容,希望文章能够帮你解决在PHP和Android中将TimeStamp转换为可读时间所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。