如何使用 PHP 解释 HTML5 输入日期值



我需要让用户选择一个日期(最好是dd/mm/yy格式),我决定尝试新的HTML5输入日期类型。但是我不知道如何解释它在服务器端给出的值。我得到的值是 yyyy-mm-dd。我该怎么做?

如果用户使用不支持它的旧浏览器,他们将如何输入日期?

  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']));

演示

如果用户的浏览器不支持它,浏览器将只显示一个常规的文本输入框,用户可以在其中输入他们喜欢的任何内容。

因此,您需要能够处理输入的任何任意数据。但这无论如何都适用,因为您永远不应该信任来自浏览器的用户输入。

如果您希望所有用户都有一个漂亮的日期控件,则可以使用jQuery日期选择器或类似工具为没有该功能的浏览器回填该功能。

至于当你得到yyyy-mm-dd值时如何处理它 - 只需使用DateTime()类将其转换为PHP DateTime对象即可。容易:

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

您可以将其作为普通输入进行检索。然后,您可以将其无缝转换为带有date()的日期。这整个只是浏览器的增强功能,所有服务器端都没有变化。如果浏览器较旧,则浏览器将使其成为正常的文本输入,并且您仍然不会看到任何区别。

最新更新