将php mysql时间转换为秒前

时间:2011-10-09 00:25:34

标签: php mysql datetime

我在转换时间方面遇到了问题。由于某种原因,它似乎是默认回到1970年,我相信是unix的默认时间。即时通讯使用此代码,当我运行该程序时,我得到42年而不是2年。我错过了什么请帮忙  这是代码

<?php

  function convertime($ptime) {
        $etime = time() - $ptime;

        if($etime < 60) {
                return 'less than minute ag';
        }

        $a = array(12 * 30 * 24 * 60 * 60 => 'year', 30 * 24 * 60 * 60 => 'month', 24 * 60 * 60 => 'day', 60 * 60 => 'hour', 60 => 'minute' //  1                       =>  'second'
                );

        foreach($a as $secs => $str) {
                $d = $etime / $secs;
                if($d >= 1) {
                        $r = round($d);
                        return $r . ' ' . $str . ($r > 1 ? 's' : '');
                }
        }
  }

?>

<?php

  $ctime = 2009-02-23 10:09:00 //time from mysql
        echo convertime($ctime);

?>

2 个答案:

答案 0 :(得分:2)

在您的时间戳周围包裹strtotime()

$ctime = strtotime('2009-02-23 10:09:00'); //time from mysql

http://codepad.org/HWQrLwBy

您需要将时间戳与时间戳进行比较。

答案 1 :(得分:1)

<?php

  function convertime($ptime) {
        $etime = time() - $ptime;

        if($etime < 60) {
                return 'less than minute ag';
        }

        $a = array(12 * 30 * 24 * 60 * 60 => 'year', 30 * 24 * 60 * 60 => 'month', 24 * 60 * 60 => 'day', 60 * 60 => 'hour', 60 => 'minute' //  1                       =>  'second'
                );

        foreach($a as $secs => $str) {
                $d = $etime / $secs;
                if($d >= 1) {
                        $r = round($d);
                        return $r . ' ' . $str . ($r > 1 ? 's' : '');
                }
        }
  }

?>

<?php

  $ctime = strtotime('2009-02-23 10:09:00'); //time from mysql
  echo convertime($ctime);

?>

试试吧