根据时间段来检索数据库数据,要用到 layui.laydate 日期和时间选择组件,代码如下:
layui.use(['layer','laydate'], function () {
var layer = layui.layer;
var laydate = layui.laydate;
laydate.render({
elem: '#startTime'
, type: 'datetime'
});
laydate.render({
elem: '#endTime'
, type: 'datetime'
});
});
设置时候不能有【range: true】,否则将导致每个 input 出现两个时间选择组件;
type类型选择 datetime,因为我们需要选择 年、月、日、时、分、秒,date类型只能选择 年、月、日,datetime中 t 不能大写;
需要将接收的时间插件的时间先转换为字符串格式时间 【String】,再由 String 类型时间转换为 Date【java.util.Date】 类型时间;
转换通常使用 SimpleDateFormat 类下的 parse 方法:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd") ;
Date date1=sdf.parse(startTime);
来将 String 类型时间转换为 Date类型时间,如果需要转换为【年、月、日、时、分、秒】,需要将参数写为【"yyyy-MM-dd HH:mm:ss"】。如下形式:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
这样做的目的是为了让转换后的时间格式与数据库的时间格式保持统一,如:时间长短一致。转换过程如果不指定参数,可能出现 Unparseable date: "2019-05-24" 错误;
使用 SimpleDateFormat 类下的 parse 方法 时候需要考虑一些可能会碰到的问题。如解析的字符串为 空 等格式不符合的问题,代码:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date1=sdf.parse(“”);
这段代码将会抛出异常: java.text.ParseException: Unparseable date: "" ,为了解决这个问题,提高代码的健壮性,需要使用
try-catch块来处理,或者提前使用 (startTime!=null && startTime!="")来过滤掉,也可以两者都用。代码如下:
if (startTime!=null && startTime!=""){
try {
Date date1=sdf.parse(startTime);
parameterPd.put("date1",date1);
}catch (Exception e){
e.printStackTrace();
}
}