2015-09-10 150 views
0

我有一個array其中每個記錄有一個'date'字段。日期的格式如下:'10/09/2015'。當我在這些日期使用strtotime時,其中一些出現爲false。我認爲數據結構有錯誤,所以我創建了這個簡單的array和一個簡單的foreach循環,在某些情況下它們輸出false。它不喜歡什麼?PHP日期轉換爲strtotime

$dates = []; 

$someData = [ 
    '21/05/2014', 
    '22/05/2014', 
    '09/06/2014', 
    '04/07/2014', 
]; 

foreach($someData as $date) { 
    $dates[] = strtotime($date); 
} 

print_r($dates);die; 
+1

查看'DateTime :: createFromFormat' http://php.net/manual/en/datetime.createfromformat.php – splash58

+0

'str_replace('/',' - ',$ str);'@ splash58。看了很久以後 –

+0

@Uchiha是的,沒關係! – splash58

回答

4

您需要在這裏瞭解日期的日期格式。 這裏m/d/Y被認爲是標準的美國日期格式。

所以,當你的約會像

'09/06/2014',//it should be considered as 06 september 2014 
'04/07/2014',//it should be considered as 07 april 2014 

當你的日子就像是爲

'21/05/2014', 
'22/05/2014', 

接着上面的日期確實美國的日期格式即m/d/Y的標準之內不配合而不是什麼你可以在這裏做替換/以及-它將你的日期轉換成歐洲日期格式,它是d-m-Y

+0

哦,我明白了。這就說得通了!謝謝。所以這個月首先。 –

+0

只需檢查我的更新答案 –

2

注意m/d/y或d-m-y格式的日期;如果分隔符是斜線(/),則假定美國m/d/y。如果分隔符是破折號( - )或點(。),則假定歐洲的d-m-y格式。爲了避免潛在的錯誤,儘可能應該使用YYYY-MM-DD日期或date_create_from_format()。