1、首先很谢谢百忙之中抽时间看这个帖子、不罗嗦直接上问题2、问题1、我从数据库取出两个 日期格式的 Date类型的数据、格式是 YY-MM-DD hh:mm:ss 一个开始日期、一个结束日期 JSP页面上面有两个查询条件、一个开始日期 、一个结束日期、数据库的开始时间我们叫他 加工开始时间、结束加工时间、页面上 我们叫他 查询开始时间 查询结束时间、现在例子1、查询事件 S: 2009-10-09 T:2009-10-10 数据库 有一条数据 开始时间是 2009-10-8 08:13:53 结束时间是 2009-10-09 08:15:53 秒 查询规则: 只要开始或者结束时间 在这个时间段之内 都要查询、那么 我查询出来了 这条数据 开始时间是 2009-10-8 08:13:53 结束时间是 2009-10-09 07:15:53 秒 我在页面上进行判断 getTime进行判断、两个时间相差多少天 不足一天、我 8号 这天 加工了 9号也加工了 应该算 2天、矛盾也就出来了、我应该用什么方法来判断这个是进行了 2天 而不是 计算小时 来判断间隔天数
这个方法 和 getTime 然后 这样 计算天数一样 24*60*60*1000它也是按时间来计算的 如果我用 day 一样 3号 一个跨度 到 4号 计算出来还是 1天、
用上面的format对象处理下再计算试试
//该方法为计算查询时间段
//interval :D表示查询精确到天数的之差
//interval :H表示查询精确到小时之差
//interval :M表示查询精确到分钟之差
//interval :S表示查询精确到秒之差
//interval :T表示查询精确到毫秒之差
//使用方法:
//alert(dateDiff('D', '2007-4-1', '2007/04/19'));function dateDiff(interval, date1, date2){
//var objInterval = {'D' : 1000 * 60 * 60 * 24, 'H' : 1000 * 60 * 60, 'M' : 1000 * 60, 'S' : 1000, 'T' : 1};
//interval = interval.toUpperCase();
var dt1 = Date.parse(date1.replace(/-/g, '/'));
var dt2 = Date.parse(date2.replace(/-/g, '/'));
try
{
return Math.round((dt2 - dt1) / (1000 * 60 * 60 * 24));//这里只精确到天
}
catch (e)
{
return 0;
}
}//调用
if(dateDiff('D',startTime,endTime)>7){
if(!window.confirm("您所要查询的时间段超过一周,等候时间可能较长,是否继续?")){
return;
}
}
String str2 = "2009-10-09 07:15:53"; SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd"); Date date1 = sf.parse(str1);
Date date2 = sf.parse(str2); Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance(); cal1.setTime(date1);
cal2.setTime(date2); while (cal1.compareTo(cal2) <= 0) {
System.out.println(sf.format(cal1.getTime()));
cal1.add(Calendar.DAY_OF_YEAR, 1);
}
* <p>Description:[返回 endDate - startDate的天数]</p>
* @param startDate [YYYY-MM-DD]
* @param endDate [YYYY-MM-DD]
* @return
* @author: Administrator
* @update: [日期YYYY-MM-DD] [更改人姓名]
*/
public static int getDecDays(String startDate, String endDate) {
java.sql.Date date1 = java.sql.Date.valueOf(startDate);
java.sql.Date date2 = java.sql.Date.valueOf(endDate);
int days = (int) ((date2.getTime() - date1.getTime()) / (1000 * 60 * 60 * 24) + 0.5);
return days;
}