[英]Validating and changing date format
我一直在閱讀有關PHP如何解釋日期的信息,尤其是在使用/
或-
。 因此,這讓我有些困惑。 我正在讀取CSV文件,並將其轉換為數組。 我的數組csvData
具有以下數據結構。
0 => array:3 [
"ID" => "10338"
"Date" => "19/08/2011"
"Value" => "30"
]
因此,每個數組元素都包含一個ID
, Date
和Value
。 現在,我專注於Date元素,我可以像這樣訪問
foreach ($this->csvData as $rowIndex => $csvValues) {
var_dump($csvValues[$this->dateCol]);
}
這是我不確定的部分。 我需要驗證此日期,並確保其格式為dd/mm/yyyy
。 我不知道日期的原始格式是什么,它實際上可以是任何格式。 可能是美國格式,例如我什至看到過類似2010-04-10T00:00:00Z
格式。
總體目標是嘗試(也許)檢測格式,然后將其轉換為所需的格式。 此外,如果日期格式完全無法辨認,或者例如為空,則我想從數組中刪除整個元素。 這部分應該是直截了當的。
我現在的主要問題是處理日期然后將其轉換為正確格式的最佳方法是什么? 我嘗試了strtotime
但是當我輸出值時,它返回false。
謝謝
DateTime類可以處理幾乎任何日期格式。 它將適合您的目標。 DateTime類的構造函數采用$string
,date和$timezone
。 您不必擔心時間只是約會,所以您應該沒事。
foreach ($this->csvData as $rowIndex => $csvValues) {
//datetime class will parse that string into something php can understand
$datetime = new DateTime($csvValues[$this->dateCol]);
//you might have to look into the correct parameters here for the format you want
$formatted_date = $datetime->format('d/m/Y')
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.