用PHP请求约会
在HTML表单中询问日期时,过去我使用的是不同的解决方案:用PHP请求约会,php,html,Php,Html,在HTML表单中询问日期时,过去我使用的是不同的解决方案: 对日、月、年使用3个不同字段 使用文本字段,但在标签中添加类似“开始日期(示例:31-12-2013)”的内容 使用反向日期,例如2013-12-31 现在我想使用HTML5,只需输入一个input type='date'。这也有助于手机用户 对于某些浏览器,这可能会提供一个日期选择器,对于某些浏览器,这可能只是一个文本字段。但我们都知道有不同的日期格式,有时用户的机器没有按照预期进行配置。例如,如果我将2014年1月3日的日期输入为2
input type='date'
。这也有助于手机用户
对于某些浏览器,这可能会提供一个日期选择器,对于某些浏览器,这可能只是一个文本字段。但我们都知道有不同的日期格式,有时用户的机器没有按照预期进行配置。例如,如果我将2014年1月3日的日期输入为2014年1月3日,则在其他文化中,这可以解释为2014年3月1日
我能做的最好的事情是什么来帮助用户防止错误?有没有一种方法可以在不事先知道他/她的浏览器设置的情况下编写一个示例?我怎么知道PHP会正确解释日期呢?Y-m-d可能是最好的方法,如果您使用jQuery UI的日期选择器,您可以指定格式
您还可以显示另一种格式 Y-m-d可能是最好的方法,如果使用jqueryui的日期选择器,可以指定格式 您还可以显示另一种格式 根据该协议,它将为您提供“一个在[RFC 3339]中定义的有效完整日期”。 然而,如果用户输入2014年1月2日,则无法知道用户的意思,尽管2014-02-01是明确的)。正如其他人所提到的,如果可能的话,请使用日期选择器。根据它将为您提供“在[RFC 3339]中定义的有效完整日期”。
然而,如果用户输入2014年1月2日,则无法知道用户的意思,尽管2014-02-01是明确的)。正如其他人所提到的,如果可能,请使用日期选择器。HTML5日期输入规范指定的完整日期格式等于:yyy-mm-dd。您将始终收到此格式的日期
HTML5日期输入规范指定的完整日期格式等于:yyyy-mm-dd。您将始终收到此格式的日期 使用ISO 8601(
YYYY-MM-DD
)+HTML5的模式
和占位符
属性
对于不支持日期
类型的浏览器,可以使用验证(regex)模式作为回退,而不是使用javascript日期选择器:
<input type="date" placeholder="YYYY-MM-DD" name="date" value="" pattern="[0-9]{4}-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])" required="required">
虽然对的支持仍然非常有限,但这种支持已经更加广泛。当然,您仍然需要检查服务器端的所有提交,但这应该为客户端验证提供一个很好的非javascript解决方案。您可以使用占位符
属性来显示正确的格式,但由于它是(IE9和更低版本),因此最好在表单字段之外显示示例
有一个很好的随时可用的输入模式集合,包括模式和其他模式。好处是,您也可以使用相同的模式进行服务器端验证。使用ISO 8601(YYYY-MM-DD
)+HTML5的模式
和占位符
属性
对于不支持日期
类型的浏览器,可以使用验证(regex)模式作为回退,而不是使用javascript日期选择器:
<input type="date" placeholder="YYYY-MM-DD" name="date" value="" pattern="[0-9]{4}-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])" required="required">
虽然对的支持仍然非常有限,但这种支持已经更加广泛。当然,您仍然需要检查服务器端的所有提交,但这应该为客户端验证提供一个很好的非javascript解决方案。您可以使用占位符
属性来显示正确的格式,但由于它是(IE9和更低版本),因此最好在表单字段之外显示示例
有一个很好的随时可用的输入模式集合,包括模式和其他模式。好处是,您也可以使用相同的模式进行服务器端验证。您可以看看如何使用javascript验证格式,就像在Thread中一样,根本无法确定
1/2/2014
是1月2日还是2月1日。HTML5可能是一个突破性的趋势,但好的基于日历的日期选择器一直工作得很好。将输入文本框保持为只读状态,并使用jquery日期选择器来填充它。据我所知,Chrome显示(在我的区域设置中)dd-mm-yyyy,但提交为yyyy-mm-dd。除Chrome外,(部分)支持仅限于Opera、iOS Safari,Android和Blackberry,请看:我刚刚意识到我的问题有多模棱两可:-)您可以看看使用javascript验证格式,就像在Thread中一样,根本无法确定1/2/2014
是1月2日还是2月1日。HTML5可能是一个突破性的趋势,但好的基于日历的日期选择器一直工作得很好。将输入文本框保持为只读状态,并使用jquery日期选择器来填充它。据我所知,Chrome显示(在我的区域设置中)dd-mm-yyyy,但提交为yyyy-mm-dd。除Chrome外,(部分)支持仅限于Opera、iOS Safari,Android和Blackberry,请看:我刚刚意识到我的问题有多模棱两可:-)