PHP - 格式化日期数组和比较

时间:2015-04-17 04:43:57

标签: php date

格式日期:

$nonzero_task_date = array_map(function($values)
            {
                return date('d-m-Y', strtotime($values));
            }, $nonzero_task_date);

            $date_arr = array_map(function($value)
            {
                return date('d-m-Y', strtotime($value));
            }, $date_arr);

日期数组:

print_r($date_arr);

    Array
(
    [0] => 13-04-2015
    [1] => 14-04-2015
    [2] => 15-04-2015
    [3] => 16-04-2015
    [4] => 17-04-2015
    [5] => 18-04-2015
    [6] => 19-04-2015
)

print_r($nonzero_task_date );

    Array
(
    [0] => 16-04-2015
    [1] => 14-04-2015
    [2] => 13-04-2015
    [3] => 16-04-2015
    [4] => 17-04-2015
)

foreach ($date_arr as $row) {
  //$format_date = new DateTime($row);
  //$date_format = $format_date->format('d-m-Y');

   //compare dates 
  if( (in_array($row, $nonzero_task_date)) ){
    $sql = 'update query';

  }
}

以上代码格式化日期,但在使用in_array()比较日期时失败?

如果在foreach循环中格式化日期,它也会因为DB中的记录数量而减慢sql进程并花费时间。

1 个答案:

答案 0 :(得分:3)

如果我理解正确,你可以使用array_map在循环遍历每个数组元素之前运行一个函数。

$date_arr = array_map(function($value)
{
    return date('d-m-Y', strtotime($value));
}, $date_arr);