有這樣一個數組,它是由(Y-m-d)格式的多個日期組成。我們如何使用PHP編寫一個程式來對數組中出現的所有日期進行降序排序呢?
那麼如果用C/ c /Java或任何其他通用程式語言來解決這個問題,我們必須根據年、月、最後根據天來比較日期,方法是將日期儲存在任何結構或任何其他需要的資料結構中。
但在PHP中,我們就可以應用strtotime()函數,這個問題便很容易解決。
strtotime()函數是一個PHP函數,它將任何格式的給定日期更改為時間戳,該時間戳本質上是一個大整數,然後在對數組進行排序時,我們可以通過定義一個比較函數輕鬆地使用PHP | usort()函數。
comparator函數將接受兩個日期參數,它們將使用strtotime()函數轉換為整數時間戳,然後與基於整數時間戳值的日期排序進行比較。
使用的內建功能:
strtotime():該函數將給定的日期字串變更為時間戳(大的int值)。
usort():此函數根據使用者定義的比較函數對給定陣列進行排序。
下面是上述想法的PHP程式碼實作:
<?php //PHP程序排序数组的日期 //用户自定义的比较函数 //基于时间戳 function compareByTimeStamp($time1, $time2) { if (strtotime($time1) < strtotime($time2)) return 1; else if (strtotime($time1) > strtotime($time2)) return -1; else return 0; } // 输入数组 $arr = array("2018-09-12", "2019-09-06", "2019-09-09"); // 使用给定的用户定义函数对数组排序 usort($arr, "compareByTimeStamp"); print_r($arr); ?>
輸出:
Array ( [0] => 2019-09-09 [1] => 2019-09-06 [2] => 2018-09-12 )
本篇文章就是關於將PHP日期陣列進行排序的方法介紹,也很簡單易懂,希望對需要的朋友有幫助!
以上是如何對PHP日期陣列進行排序的詳細內容。更多資訊請關注PHP中文網其他相關文章!