Почему strtotime () ничего не возвращает в следующем сценарии?

0

У меня есть одно поле данных массива $ _POST, содержащее дату в формате mm-dd-YYYY следующим образом:

$_POST['submission_date'] => 12-15-2014 //I get this after I did print_r($_POST);

Теперь я пробовал использовать код с strtotime(), но ничего не возвращал. Зачем?

echo "Submission Date ".strtotime($_POST['submission_date']);

Пожалуйста, помогите мне.

Благодарю.

  • 0
    какой вывод эха ??
  • 0
    @sgt: показывается пустым
Показать ещё 5 комментариев
Теги:
timestamp
date
strtotime

3 ответа

2
Лучший ответ

Если опубликованный формат находится в mdY, то вы не можете преобразовать его в unix timestamp напрямую с strtotime() функции strtotime(), потому что он вернет false.

Если вам нужно использовать strtotime() измените формат ввода на m/d/Y простым str_replace().

С другой стороны, вы можете использовать класс DateTime:

$dt = DateTime::createFromFormat('!m-d-Y', $submission_date);
echo $dt->format('Y-m-d'), " or ", $dt->getTimestamp();

demo

3

Даты в форматах m/d/y или dmy устраняются неоднозначно, глядя на разделитель между различными компонентами: если разделитель является косой чертой (/), то предполагается, что американский m/d/y; тогда как если разделитель является тире (-) или точкой (.), тогда предполагается европейский формат dmy.

Чтобы избежать потенциальной двусмысленности, лучше всего использовать даты ISO 8601 (YYYY-MM-DD) или DateTime :: createFromFormat(), когда это возможно.

Справка

Сложно ли читать документацию? Вероятно, вы потратили больше времени на свой вопрос... и пропустили все другие интересные мелочи

0

Ответ обновлен

Просто добавьте строку replace

$dbDate = str_replace('-', '/', $_POST['submission_date']);

Все будет работать.

Формат вашей даты - американский месяц, день и год

И требует / как разделителя нет -

Рабочая демо на основе вашего ввода.

  • 0
    Привет downvoters, обновленный ответ, пожалуйста, проверьте.
  • 0
    Привет downvoters, обновленный ответ, пожалуйста, проверьте.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню