PHP日期转换为strtotime

时间:2015-09-10 10:14:21

标签: php date strtotime

我有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;

2 个答案:

答案 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()。