java后台与jsp页面计算两个日期之间天数
很多时候页面会涉及到关于时间的计算。
计算时间差,判断是否超时等等。下面我给大家两个很好用的计算时间的代码。前台和后台都有。
前台代码:
下面是根据id获取日期框的值。日期框一般会使用日期控件。
if($("#TIME_START").val() !="" && $("#TIME_END").val() !=""){
end_str = $("#TIME_END").val().replace(/-/g,"/");//一般得到的时间的格式都是:yyyy-MM-dd hh24:mi:ss,所以我就用了这个做例子,是/的格式,就不用replace了。
var end_date = new Date(end_str);//将字符串转化为时间
sta_str = $("#TIME_START").val().replace(/-/g,"/");
var sta_date = new Date(sta_str);
var num = (end_date-sta_date)/(1000*3600*24);//求出两个时间的时间差,这个是天数
var num2 = (sta_date-end_date)/(1000*3600);//求出两个时间的时间差,这个是小时
var days = parseInt(Math.ceil(num));//转化为整天(小于零的话就不用转了)
if(days<=0){
$("#TIME_END").tips({
side:3,
msg:'结束时间不能小与开始时间',
bg:'#AE81FF',
time:2
});
$("#TIME_END").focus();
}
}
}
下面是后台代码计算时间差:
这是一个static的方法,可以直接调用,只需要传入两个String类型的时间参数即可。返回的就是两个时间的时间差。会有负值。
public static Long between_days(String a, String b) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");// 自定义时间格式
Calendar calendar_a = Calendar.getInstance();// 获取日历对象
Calendar calendar_b = Calendar.getInstance();
Date date_a = null;
Date date_b = null;
try {
date_a = simpleDateFormat.parse(a);//字符串转Date
date_b = simpleDateFormat.parse(b);
calendar_a.setTime(date_a);// 设置日历
calendar_b.setTime(date_b);
} catch (ParseException e) {
e.printStackTrace();//格式化异常
}
long time_a = calendar_a.getTimeInMillis();
long time_b = calendar_b.getTimeInMillis();
long between_days = (time_b - time_a) / (1000 * 3600 * 24);//计算相差天数
return between_days;
}