向后兼容性和HTML5日期输入-日期格式

向后兼容性和HTML5日期输入-日期格式,html,google-chrome,input,compatibility,backwards-compatibility,Html,Google Chrome,Input,Compatibility,Backwards Compatibility,所以,我遇到了这个问题,也许我只是想得不清楚,但网站如何处理这个问题的例子会有所帮助 我想使用HTML5日期输入-它很好,很流畅。但是,我需要最终将该日期作为日期字段输入mysql数据库。问题不在于HTML5日期输入的post值,而是当它在旧浏览器上恢复为文本时 如果我通过输入说“请格式化YYYY-MM-DD”(这将是一个从许多浏览器访问的高度公开的应用程序),那么当使用显示日期选择器的Chrome时,Chrome会自动将显示的日期格式化为MM/DD/YYYY,我听说这是针对用户的本地化 问题是

所以,我遇到了这个问题,也许我只是想得不清楚,但网站如何处理这个问题的例子会有所帮助

我想使用HTML5日期输入-它很好,很流畅。但是,我需要最终将该日期作为日期字段输入mysql数据库。问题不在于HTML5日期输入的post值,而是当它在旧浏览器上恢复为文本时

如果我通过输入说“请格式化YYYY-MM-DD”(这将是一个从许多浏览器访问的高度公开的应用程序),那么当使用显示日期选择器的Chrome时,Chrome会自动将显示的日期格式化为MM/DD/YYYY,我听说这是针对用户的本地化

问题是:如何放置“Please format YYYY-MM-DD”标签,该标签仅在恢复为文本框时显示?如果我向最终用户指定他们需要以一种方式格式化数据,而日期选择器只允许他们以另一种方式进行格式化,这难道不是令人绝望地困惑吗?我预计此表单将在多个地区使用,因此无法预期默认格式


请注意,这是一个前端问题;我知道如何获取POST值,但需要向后兼容文本框的POST值保持一致

您可以使用占位符属性,如下所示:

<input type="date" name="myName" placeholder="Please format YYYY-MM-DD">

当浏览器无法识别日期类型时,它将作为文本输入呈现。占位符显示在文本输入上,但不显示在日期输入上

现在,不幸的是根据,只有IE10+支持占位符属性。我不确定这是否是你的问题

如果它是一个问题,您可以使用来测试诸如占位符支持之类的功能,并向正文中添加适当的类。如果是这种情况,您可以编写一个CSS规则,其内容如下:

.my-input-label {
  display: none;
}
.no-placeholder .my-input-label {
  display: inline-block; // Or block, if you need to support IE < 8
}
。我的输入标签{
显示:无;
}
.无占位符.我的输入标签{
显示:inline block;//或block,如果需要支持IE<8
}
这将使标签显示在任何不支持占位符属性的内容上,但它们将从任何支持占位符属性的内容的布局流中删除,从而优雅地降级

最后,另一种选择是设置默认值。大概是这样的:

<input type="date" name="myName" value="Please format YYYY-MM-DD">

它没有那么经典,从用户体验的角度来看更糟,但对于所有不支持
日期
输入类型的浏览器来说,这种体验都是通用的

注意:我没有在IE上测试Modernizer的类,所以我不确定该类是否为
无占位符