Похоже, что ваше входное имя и ключ массива несовместимы ("дата" против "даты").
Unix отметки времени относятся к 1 января 1970 года, и, следовательно, это значение отметки времени 0 Неопределенный ключ массива приведет к значению NULL (и, скорее всего, уведомление / предупреждение в журналах). strtotime
вернет false, когда первый параметр имеет значение NULL, и будет преобразован в 0 при передаче в date
и, следовательно, в дату 1970/01/01.
Редактировать
Исходя из вашей дополнительной информации в комментариях, проблема в том, что предоставленный вами формат даты не распознается strtotime
. Вам нужно будет проанализировать ожидаемый формат, используя другой метод.
Вы можете использовать DateTime::createFromFormat
для анализа указанного формата c, а затем использовать DateTime::format
хранить его в нужном формате. Например:
$date=DateTime::createFromFormat("d F Y - H:i", $form["date"]);
$data["PUBLISH"]=$date->format("Y/m/d H:i a");