在PHP中排序datetime数组后得到错误结果

在PHP中排序datetime数组后得到错误结果,php,arrays,sorting,datetime,Php,Arrays,Sorting,Datetime,我想按日期时间对数组进行降序排序。以下是示例阵列: <?php $var1 = "2016-12-30 12:30:59"; $var2 = "2015-11-21 11:30:59"; $var3 = "2017-01-15 10:30:59"; $a = array($var1, $var2, $var3); function compare_func($a, $b) { // CONVERT $a AND $b to DATE AND TIME using strtoti

我想按日期时间对数组进行降序排序。以下是示例阵列:

<?php
$var1 = "2016-12-30 12:30:59";
$var2 = "2015-11-21 11:30:59";
$var3 = "2017-01-15 10:30:59";

$a = array($var1, $var2, $var3);

function compare_func($a, $b) {
    // CONVERT $a AND $b to DATE AND TIME using strtotime() function
    $t1 = strtotime($a[0]);
    $t2 = strtotime($a[1]);

    return ($t2 - $t1);
}

usort($a, "compare_func");

var_export($a);
?>

您可以直接比较字符串

function compare_func($a, $b) {
    return ($a > $b);
}

您可以直接比较字符串

function compare_func($a, $b) {
    return ($a > $b);
}
试试这个:

<?php
$var1 = "2016-12-30 12:30:59";
$var2 = "2015-11-21 11:30:59";
$var3 = "2017-01-15 10:30:59";

$arr = array($var1, $var2, $var3);

function date_sort($a, $b) {
    return strtotime($b) - strtotime($a);
}
usort($arr, "date_sort");
print_r($arr)


?>
试试这个:

<?php
$var1 = "2016-12-30 12:30:59";
$var2 = "2015-11-21 11:30:59";
$var3 = "2017-01-15 10:30:59";

$arr = array($var1, $var2, $var3);

function date_sort($a, $b) {
    return strtotime($b) - strtotime($a);
}
usort($arr, "date_sort");
print_r($arr)


?>