1

我创建了一个网站,其中一个输入是使用<input type="date" name="rcdate" />. 它非常方便,但仅适用于 Chrome。我使用 PHP 处理它时的输出是 YYYY-MM-DD 格式。

问题是当有人使用过时的浏览器(注:Firefox,IE)时,UI 不工作(注:显示一个文本框)并提示用户输入他/她自己的日期,格式总是与 MySQL 格式不一致因为日期是 YYYY-MM-DD。

任何人都可以提供 HTML 版本检查器,以便用户收到他/她的浏览器与我的网站不兼容的消息吗?谢谢。也欢迎有关如何绕过此问题的任何其他建议。

编辑:我的处理日期代码如下:

<?php
if(isset($_POST['rcdate'])){ $rcdate= $_POST['rcdate']; }
$strSQL = "Insert INTO nqascorecard (
    `RcDate`
    VALUES (
    '$rcdate'
    )";
$rs = mysql_query($strSQL) or die(mysql_error());
?>
4

3 回答 3

3

最好使用 Modernizr 之类的东西来检测日期类型是否受支持,如果不支持,则为日期选择器实现 javascript 回退。没有多少桌面浏览器支持日期输入法。见http://caniuse.com/#feat=input-datetime

于 2013-06-11T00:26:11.497 回答
2

一般来说,没有办法“检查 HTML 版本”,但您可以使用Modernizr直接在 JavaScript 代码中使用功能检查。也就是说,您可以例如检查浏览器是否识别该属性(以便它反映在 DOM 中)。但是,这里的问题实际上是:如果不支持该功能(如 )该怎么办?如果你有一个好的备份计划,比如使用 JavaScript 小部件,为什么不简单地使用它而不是? 此外,功能检查可能并没有真正起作用:浏览器可能会识别但无法提供实现它的合理 UI。type=dateinput type=date input type=datetype=date

当对 to 的支持input type=date变得广泛并且(或是否)已正确本地化时(当前的 HTML5 草案对此很混乱,并且实现倾向于通过系统区域设置而不是页面区域设置进行本地化),您可以使用input type=date简单的备份:如果浏览器这样做不支持它(使其回退到一个简单的文本输入框),插入告诉用户使用 yyyy-mm-dd 格式的指令。或者,为了更安全,将这些指令放入静态内容中,如果您可以检测到浏览器真正支持input type=date.

于 2013-06-11T05:58:51.337 回答
1

根据 w3schools http://www.w3schools.com/html/html5_form_input_types.asp,Firefox和 Internet Explorer 目前不支持 HTML5“日期”输入类型

但是,有一些基于 JavaScript 的日历,如 jQuery UI http://jqueryui.com/datepicker/这样的一种形式,它们被构建为跨浏览器兼容,所以我建议使用类似的东西,这样你就不必这样做浏览器嗅探。

于 2013-06-11T00:25:53.977 回答