关于<input type=“datetime-local”>日期输入框
今天由于项目中需要使用日期输入框,所以就找了一下相关的文章,结果竟然没发现符合预期的方法。
日期输入框,如果想要使输入框存在默认值,一般写法:
<tr>
<td>课程开始时间</td>
<td><input id="coursestarttime" type="datetime-local" value="2019-01-01T08:23"></td>
</tr>
其中value一般不会是固定的,所以上面这种写法必须要自己想办法将后台的日期转化为规定格式:“yyyy-MM-ddThh:mm:ss”,自己在后台转好传过来,或是js中转化,非常麻烦(网上很多,就不说了)。
所以我就试了各种方法,突然就想到了<fmt:>标签!!!居然成功了!!发现还挺方便!
加上标签之后的写法:
<tr>
<td>课程开始时间</td>
<td><input id="coursestarttime" type="datetime-local" value=<fmt:formatDate value='${course.coursestarttime}' pattern='yyyy-MM-dd\'T\'hh:mm:ss'/>></td>
</tr>
当然前面还需自行引入fmt标签
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
注意:pattern='yyyy-MM-dd’T’hh:mm:ss’中字母T一定要加引号!而又由于引号需要使用转义字符,所以引号要使用\转义!
我自己觉得原因可能是,因为<fmt>是使用simpledateformt实现的,simpledateformat中如果使用了T,会报错:无法识别的字符T。所以T需要加引号,如:
SimpleDateFormat sdf = new SimpleDateFormat(“yyyyMMdd’T’HHmmss”);
所以pattern='yyyy-MM-dd’T’hh:mm:ss’中字母T要加引号。
不过最令我惊奇的是,value后居然可以跟标签,难道因为标签最后会转化为字符串????
自己琢磨出了一个方法还挺开心!希望大佬可以指正这样写是否正确,或者有更好的写法!欢迎讨论!