我试图按模板字段之一 ($fields[3]) 对列表进行排序,但没有成功,该字段是一个文本输入字段,其中包含日期。问题是,由于日期的格式,它无法正确排序,因为我猜它只是比较数字。
我认为我需要在排序之前更改日期格式,但到目前为止尚未做到这一点。
我正在尝试像这样使用 usort 函数(字段 3 是日期格式为 dd/mm/yyyy 的字段),
if (!function_exists('do_sort')) {
function do_sort($a, $b) {
return $a->fields[3] > $b->fields[3];
}}
$data = $params['data'];
usort($data, 'do_sort');
$smarty->assign('sorted', $data);
这对数据进行了排序,但和以前一样,因为我没有更改任何内容,但顺序不正确。谁能帮我在排序之前重新格式化日期?
非常感谢
克里斯
最佳答案
设法做到了。如果其他人感兴趣,我使用了以下函数:
function date_compare($a, $b)
{
$t1 = strtotime($a->fields[3]);
$t2 = strtotime($b->fields[3]);
return $t1 - $t2;
}
$data = $params['data'];
usort($data, 'date_compare');
$smarty->assign('sorted', $data);
关于php - usort 日期协助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11583822/