5

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

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

4

4 回答 4

7
  1. 只需使用 PHP 的日期功能 ( date(),DateTime等)转换日期

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

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

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

于 2012-12-06T15:48:09.927 回答
4

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

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

演示

于 2012-12-06T15:53:18.547 回答
1

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

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

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

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

$dateObj = new DateTime($_GET['mydate']);  //or whatever your input field is called.
于 2012-12-06T15:59:52.227 回答
0

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

于 2012-12-06T15:48:18.200 回答