2 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
仔細(xì)看字符串 $a = date('dmY H:i', strtotime($a));
strtotime($a)正在嘗試將字符串轉(zhuǎn)換為時(shí)間戳。由于您有自定義日期格式,因此該字符串09082020 00:00將轉(zhuǎn)換為false.
之后,date('dmY H:i', false)就會(huì)返回01011970 00:00。這就是排序不起作用的原因。
我會(huì)建議使用DateTime::createFromFormat.
usort($items, function ($a, $b) {
$a = DateTime::createFromFormat('dmY H:i', $a);
$b = DateTime::createFromFormat('dmY H:i', $b);
if ($a == $b) {
return 0;
}
return ($a > $b) ? -1 : 1;
});

TA貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個(gè)贊
在這一部分
date('dmY H:i', strtotime($a));
date您正在嘗試使用格式創(chuàng)建,但您設(shè)置了strtotime()返回 Unix 時(shí)間戳 (int) 的值。所以你可能正在尋找類似的東西:
\DateTime::createFromFormat('dmY H:i', $a);
所以它可能是這樣的:
function orderDates($items) {
//Sort them. Latest one first
usort($items, function ($a, $b) {
$a = \DateTime::createFromFormat('dmY H:i', $a);
$b = \DateTime::createFromFormat('dmY H:i', $b);
if ($a == $b) {
return 0;
}
return ($a > $b) ? -1 : 1;
});
return $items;
}
- 2 回答
- 0 關(guān)注
- 179 瀏覽
添加回答
舉報(bào)