2013-10-21 70 views
0

我有一個PHP數組,我可以讓關鍵的還是值是這個格式10/03/2013 01:45pm對日期時間值數組進行排序並獲取最新的日期時間值?

什麼我的最終目標是在此日期時間值的數組排序,然後指定最新值的變量。

我一直在尋找PHP函數uksort但我不確定這是否是這個問題的解決方案,如果是這樣,我不知道如何基於這個DateTime值以這種方式對數組進行排序,然後抓住最新的價值。

請幫忙嗎?

+0

問題是,該日期格式不是真正可排序的。你可以做的是打破它,並使用'mktime'給你一個時間戳,可以排序沒有問題。 –

+0

如果你打算按照「Y-m-d H:i:s」的格式,你爲什麼不創建它?當然你可以調用它,或者在回調函數中進行日期時間字符串解析和重建,但是這些東西最好在源代碼中修復。 – Wrikken

+0

@Wrikken我不是消息來源!我只是將這個值從API調用中解壓縮到SugarCRM調用 – JasonDavis

回答

2

假設日期是數組值:

array_multisort(array_map('strtotime', $array), SORT_DESC, $array); 
$yourVar = $array[0]; //or use current() or reset() 
+0

儘管我可能會單獨使用'$ stamps = array_map('strtotime',$ array)'或者在排序中,然後當您需要使用$ stamps數組使用date()作爲您想要的格式時。 – AbraCadaver

0

我有一個PHP數組,我可以讓關鍵的還是值這個 格式2013年10月3日下午1時45

如果此值的格式不是必需的,那麼您可以使用strtotime()函數。 在可以使用的strtotime()的輸出,這將是數字形式的陣列(詳情跟隨鏈接)Now any sorting algorithms will easily short time stamps and you can do all the operation easily and efficiently.

如何將其轉換爲想要的格式? 使用日期功能,以顯示與下列格式的日期,

echo date("d-m-Y h:i a", strtotime($array[$i])); 

注意:如果數組的值必須是在所提到的格式(同問題),那麼這將是一個漫長的過程,因爲串作儀和匹配是比數字更慢。

相關問題