【问题标题】:Format MySql time for display to client, undefined offset error格式化MySql时间以显示给客户端,未定义的偏移错误
【发布时间】:2014-02-01 14:41:54
【问题描述】:

我有一个函数应该计算一篇文章是多久以前写的,然后在调用它时返回它得到的任何值。但是我收到了通知消息,这是一个我不想抑制但要解决的错误。

function getTimeAgo($date,$granularity=1){

    $values = explode(" ",$date);
    $time = new DateTime('now', new DateTimeZone('UTC'));//GET CURRENT UTC TIME
    $date = $values[2] . "-" . $values[1] . "-" . $values[5] . " " . $values[3];    
    $difference = strtotime($time->format('Y-m-d H:i:s')) - strtotime($date);
    $retval='';
    $periods = array('decade' => 315360000,
    'year' => 31536000,
    'month' => 2628000,
    'week' => 604800, 
    'day' => 86400,
    'hour' => 3600,
    'min' => 60,
    'sec' => 1);

    foreach ($periods as $key => $value) {
    if ($difference >= $value) {
        $time = floor($difference/$value);
        $difference %= $value;
        $retval .= ($retval ? ' ' : '').$time.' ';
        $retval .= (($time > 1) ? $key.'s' : $key);
        $granularity--;
    }
    if ($granularity == '0') { break; }
    }
    return $retval.' ago';
}   

}

错误:在此特定位置是否存在未定义的偏移量 [2]、[1]、[5] 和 [3]

$date = $values[2] . "-" . $values[1] . "-" . $values[5] . " " . 

【问题讨论】:

  • 你在爆炸前得到的 $date 是什么?
  • 分解 $date 变量后,在其上执行print_r() 以查看数组包含的内容。看来您传递的 $date 值不正确。
  • @AbhikChakraborty $date before explode 是这种格式 2013-12-01 08:16:32
  • @PhilCross,在调用 explode() 之前,传递给函数的日期采用上述格式,即 0000-00-00 00:00:00
  • 并在 $date = $values[2] 上输出您想要的。 “-”。 $价值[1]。 “-”。 $价值[5]。 “”。 ?

标签: php mysql


【解决方案1】:

您的函数接受 $date 值为 2013-12-01 08:16:32

这样做

$values = explode(" ",$date);

会给你数组

$values[0] = 2013-12-01
$values[1] = 08:16:32

所以

$date = $values[2] . "-" . $values[1] . "-" . $values[5] . " " 

不会有索引 2,5....

如果函数接收到一个空数据,那么做explode会返回所有无效的索引。

您可以直接在内部使用参数中的 $date

$difference = strtotime($time->format('Y-m-d H:i:s')) - strtotime($date);

如果传递的值是格式 2013-12-01 08:16:32

【讨论】:

    猜你喜欢
    • 2017-06-16
    • 2010-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-13
    相关资源
    最近更新 更多