Как интерпретировать значение даты ввода HTML5 с помощью PHP

Мне нужно, чтобы пользователи выбирали дату (предпочтительнее в формате dd / mm / yy), и я решил попробовать новый тип даты ввода HTML5. Однако я не знаю, как интерпретировать значение, которое он дает на стороне сервера. Значение, которое я получаю, равно yyyy-mm-dd. Могли бы вы мне помочь?

Что делать, если пользователь использует браузер olser, который его не поддерживает, как он будет вводить дату?

  1. Просто конвертируйте дату с использованием функциональных возможностей PHP ( date() , DateTime и т. Д.).

    $datetime = new DateTime('2012-12-06');

    $new_date = $datetime->format('d/m/Y');

  2. Они будут видеть текстовое поле. Вам будет необходимо убедиться, что они вводят дату подтверждения.

Вы можете конвертировать форматы даты с помощью date() , например,

  $new_date = date('d/m/y', strtotime($_POST['date'])); 

демонстрация

Вы можете просто восстановить его как обычный ввод. Затем вы можете легко конвертировать его в дату с date() . Это всего лишь расширение браузера, и ничто не меняется на всех серверах. Если браузер старше, то браузер сделает его обычным вводом TEXT, а STILL вы не увидите никакой разницы. Приветствия, Боян

Если у пользователя есть браузер, который его не поддерживает, в браузере будет отображаться обычный текстовый блок ввода, в который пользователь может вводить все, что им нравится.

Поэтому вам необходимо иметь возможность справляться с любыми вводимыми произвольными данными. Но это будет применяться в любом случае, так как вы никогда не должны доверять пользователю, поступающему из браузера.

Если вы хотите, чтобы все пользователи имели прекрасный контроль над датами, вы могли бы использовать jQuery datepicker или аналогично тому, чтобы засыпать эту функцию для браузеров, у которых ее нет.

Что касается того, что делать с значением yyyy-mm-dd когда вы его получите, просто используйте класс DateTime() чтобы превратить его в объект PHP DateTime. Легко:

 $dateObj = new DateTime($_GET['mydate']); //or whatever your input field is called.