2015-09-10 132 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()。