我有array
,其中每条记录都有一个'date'
字段。日期采用以下格式:'10/09/2015'
。当我在这些日期使用strtotime
时,其中一些日期为false
。我认为数据结构中存在错误,所以我创建了这个简单的array
和一个简单的foreach
循环,在某些情况下它们会输出false
。它不喜欢什么?
$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;
答案 0 :(得分: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
答案 1 :(得分:2)
注意m / d / y或d-m-y格式的日期;如果分隔符是斜杠(/),则假定为美国m / d / y。如果分隔符是破折号( - )或点(。),则假定为欧洲d-m-y格式。为避免潜在的错误,您应该尽可能使用YYYY-MM-DD日期或date_create_from_format()。