Это действительно зависит от того, что содержит $dateString
.Предполагая, что ваш виджет jQuery также доставил часть времени, ваш коллега, вероятно, хотел удалить часть времени.Сравните следующее:
echo date(DATE_ATOM, strtotime('2010-10-01 17:32:00'));
// 2010-10-01T17:32:00+02:00
echo date(DATE_ATOM, strtotime("midnight", strtotime('2010-10-01 17:32:00')));
// 2010-10-01T00:00:00+02:00
Если ваш виджет не возвращает часть времени, я не вижу причин для установки даты на полночь, потому что это будет автоматически полночь:
echo date(DATE_ATOM, strtotime('2010-10-01'));
// 2010-10-01T00:00:00+02:00
Обратите внимание, что все эти являются датами в прошлом, и они приведут к данному году в прошлом, а не к текущему, как вы говорите.Если они есть в вашем коде, причина должна быть где-то еще.
Будут ли последствия при изменении кода?Мы не можем знать.Это всего лишь одна строка кода, и мы понятия не имеем о каком-либо контексте.Ваши модульные тесты должны сообщать вам, когда что-то ломается, когда вы меняете код.
РЕДАКТИРОВАТЬ после обновления
Кодовый блок, который вы показываете, не имеет никакого смысла вообще,Спросите парня, который написал это, что он должен делать.Он не только неверно вернет текущий год за прошлые годы, но также даст неверные результаты для минут, например
24 March, 2010 17:30 will be 2012-03-24T17:00:30+01:00
Я предполагаю, что это была попытка превратить 24 March, 2010 17:30
в действительную метку времени,который в формате strtotime
не распознает.Но подход сломан.Если вы используете PHP5.3, используйте
$dt = DateTime::createFromFormat('d F, Y H:i', '24 March, 2010 17:30');
echo $dt->format(DATE_ATOM); // 2010-03-24T17:30:00+01:00
. Если вы еще не используете 5.3, пройдите через https://stackoverflow.com/search?q=createFromFormat+php для альтернативных решений.Там есть пара.