【问题标题】:How to interpret HTML5 input date value using PHP如何使用 PHP 解释 HTML5 输入日期值
【发布时间】:2012-11-24 16:43:23
【问题描述】:

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

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

【问题讨论】:

    标签: php html input


    【解决方案1】:
    1. 只需使用 PHP 的日期功能(date()、DateTime 等)转换日期

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

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

    2. 他们将看到一个纯文本字段。您可以确保他们输入验证日期。

    【讨论】:

    • 请将此添加到您的答案$date = date('d/m/Y', strtotime($_POST['date']));
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      你可以像这样使用date()转换日期格式,

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

      Demo

      【讨论】:

        【解决方案4】:

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

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

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

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

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

        【讨论】:

          猜你喜欢
          • 2013-05-25
          • 2015-12-27
          • 2013-08-06
          • 2018-01-13
          • 1970-01-01
          • 2012-07-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多