用PHP请求约会

用PHP请求约会,php,html,Php,Html,在HTML表单中询问日期时,过去我使用的是不同的解决方案: 对日、月、年使用3个不同字段 使用文本字段,但在标签中添加类似“开始日期(示例:31-12-2013)”的内容 使用反向日期,例如2013-12-31 现在我想使用HTML5,只需输入一个input type='date'。这也有助于手机用户 对于某些浏览器,这可能会提供一个日期选择器,对于某些浏览器,这可能只是一个文本字段。但我们都知道有不同的日期格式,有时用户的机器没有按照预期进行配置。例如,如果我将2014年1月3日的日期输入为2

在HTML表单中询问日期时,过去我使用的是不同的解决方案:

  • 对日、月、年使用3个不同字段

  • 使用文本字段,但在标签中添加类似“开始日期(示例:31-12-2013)”的内容

  • 使用反向日期,例如2013-12-31

  • 现在我想使用HTML5,只需输入一个
    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,请看:我刚刚意识到我的问题有多模棱两可:-)