在循环中获取所需日期格式的问题

时间:2010-05-29 06:22:07

标签: php date

我有这样的日期格式:

  $date1 = "Sun May 09 20:07:50 +0000 2010";

我必须将其转换为:09-05-2010

我用echo日期回应它(“d-m-Y”,strtotime($ date1));

当我单独打印时,它会给出正确的结果,但我在循环中使用它   它给我的结果如:31-12-1969

我正在使用的循环是:

foreach($userinfo as $k=>$v)
{
if($k == 'test')
 {
    foreach($v as $k1=>$v1)
    {
      echo $v1."<br>";
      //echo strtotime($v1)."<br>";
      //echo $date = date("d-m-Y", strtotime($v1));
    }
 }
}

当我回应$ v1时,他给了我:Sun May 09 20:07:50 +0000 2010   当我回复strtotime($ v1);它给了空白。  无论如何有趣的是我在1D循环中完美地获得了这种转换。

你能帮忙吗?

3 个答案:

答案 0 :(得分:1)

echo date("d-m-Y", strtotime($date1)) ;

答案 1 :(得分:0)

$date1 = "Sun May 09 20:07:50 +0000 2010";在循环之外吗?如果是,请确保仅使用strtotimedate进行一次更改。

答案 2 :(得分:0)

首先,你可以通过写作来简化:

foreach ($userinfo['test'] as $k => $v) {
    foreach ($v as $k1 => $v1) {
        echo date("d-m-Y", strtotime($v1));
    }   
}

第二个 strtotime()参数对您没用,如果您使用该函数对时间戳进行操作,例如:

echo strtotime("-1 day", mktime(...));

只需要print_r($userinfo['test'])看看里面是什么。