格式日期:
$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进程并花费时间。
答案 0 :(得分:3)
如果我理解正确,你可以使用array_map在循环遍历每个数组元素之前运行一个函数。
$date_arr = array_map(function($value)
{
return date('d-m-Y', strtotime($value));
}, $date_arr);