php - usort 日期协助

标签 php date usort

我试图按模板字段之一 ($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/

相关文章:

php - Laravel 关系数据库连接

javascript - 如何转换 2015年11月18日 12 :00:00 GMT+0530 (Sri Lanka Standard Time) to (yyyy-MM-dd HH-mm-ss) format in javascript

php - 使用sort函数进行排序和分组

php - PHP8.0.0 中发生了什么来破坏 usort(...(int)(strlen($a)<strlen($b)));?

php - 自定义 woocommerce_get_price_html

php - MySQL Family Tree : Hierarchy, Marriage ref 和 Display

php - preg_match() : Compilation failed: character value in\x{} or\o{} is too large at offset 27 on line number 25

c# - 任何 C# SmartDate 转换器,例如 "sun 11"--> 2009-12-06 11 :00:00

c++ - 我找不到公式

php - 根据给定的字符串对数组进行排序