我需要让用户选择一个日期(最好是dd/mm/yy格式),我决定尝试新的HTML5输入日期类型。但是我不知道如何解释它在服务器端给出的值。我得到的值是 yyyy-mm-dd。我该怎么做?
如果用户使用不支持它的旧浏览器,他们将如何输入日期?
-
只需使用PHP的日期功能(
date()
,DateTime
等)转换日期即可$datetime = new DateTime('2012-12-06');
$new_date = $datetime->format('d/m/Y');
-
他们将看到一个纯文本字段。由您来确保他们输入验证日期。
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()
的日期。这整个只是浏览器的增强功能,所有服务器端都没有变化。如果浏览器较旧,则浏览器将使其成为正常的文本输入,并且您仍然不会看到任何区别。