我有一个场景,其中我有一个用户必须输入日期的表单。
在Chrome和Edge中
在这些浏览器中,您可以使用<input type="date">
使用本地化日期格式显示一个不错的日期选择器,然后将日期插入到接受格式yyyy-mm-dd
的数据库中。
在较旧的浏览器(IE / Firefox等)中
在这些浏览器中<input type="date">
不完全受支持,所以在很多情况下,字段默认为字符串。在这种情况下,我知道您可以使用JQuery UI Datepicker元素并设置默认格式。
困境
从数据库中检索日期并将其放回表单字段时,它通常会显示为yyyy-mm-dd
,就像它在数据库中的存在方式一样。
我知道我可以这样做:
SELECT DATE_FORMAT(date,'%d/%m/%Y')
这会给我英国约会。
但是,如果我在IE中并且该字段现在读取dd-mm-yyyy
如果我重新提交此表单,则会中断日期,因为IE完全按原样采用此格式,但只接受原始格式。
问题本身
那么,基本上有一种方法可以显示进出数据库的英国日期格式是否符合所有浏览器的要求?
我的想法
我在考虑在格式之间来回切换,具体取决于用户是否在IE中。
换句话说,如果字段中的日期为dd-mm-yyyy
,请抓住它将其拆分并为IE浏览器进行改造,我将使用Modernizer检测它。