У меня есть 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;
Вам нужно понять здесь формат даты вашей даты. Здесь 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
вместо того, что вы можете сделать здесь, – это замена /
вместе с -
которая преобразует вашу дату в европейский формат даты, который является dmY
Знать даты в форматах m / d / y или dmy; если разделитель является косой чертой (/), то предполагается, что американский m / d / y. Если разделитель является тире (-) или точкой (.), Тогда предполагается европейский формат dmy. Чтобы избежать возможных ошибок, вы должны указать даты YYYY-MM-DD или date_create_from_format (), когда это возможно.