如何比较两个时间字符串的大小
Posted 这都不是事
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何比较两个时间字符串的大小相关的知识,希望对你有一定的参考价值。
方式一、后台
现在有两个字符串,是从表单读取来的日期性,“2003-10-12”与“2003-10-21”,
现在如何判断他们的大小。
如果不想再转为date类型比较
有一种简单的方法
String a="2003-10-12";
String b="2003-10-21";
int result=a.compareTo(b);
if (result==0)
out.print("a=b");
else if (result < 0 )
out.print("a<b");
else out.print("a>b");
使用String类中的compareTo()方法比较。如:s1.compareTo(s2)
但是这个方法有个缺点,就是要求两个参与比较的字符串的形式及长度必须相同才能够正确比较,否则,比较结果是错的.
例如:
s1 = "02";
s2 = "12";
这样比较是正确的.
但如果是下面的样子,
s1 = "2";
s2 = "12";
比较结果是错误的的
转自:http://www.cnblogs.com/xiaomuv587/archive/2012/12/21/2828106.html
方式二、js
<html> <head> <title>calendar-比较时间和日期大小-www.jb51.net</title> <script type="text/javascript" src="CalendarFramework.js"></script> </head> <body> 开始时间:<input onfocus="setday(this)" id="startTime" name="startTime">到 结束时间:<input onfocus="setday(this)" id="endTime" name="endTime"> <input type="button" onclick="checkTime()" value="校验"/> </body> <script type="text/javascript" > checkTime = function() { var startTime = document.getElementById("startTime").value; var endTime = document.getElementById("endTime").value; compareCalendar(startTime, endTime); } //比较日前大小 function compareDate(checkStartDate, checkEndDate) { var arys1= new Array(); var arys2= new Array(); if(checkStartDate != null && checkEndDate != null) { arys1=checkStartDate.split(\'-\'); var sdate=new Date(arys1[0],parseInt(arys1[1]-1),arys1[2]); arys2=checkEndDate.split(\'-\'); var edate=new Date(arys2[0],parseInt(arys2[1]-1),arys2[2]); if(sdate > edate) { alert("日期开始时间大于结束时间"); return false; } else { alert("通过"); return true; } } } //判断日期,时间大小 function compareTime(startDate, endDate) { if (startDate.length > 0 && endDate.length > 0) { var startDateTemp = startDate.split(" "); var endDateTemp = endDate.split(" "); var arrStartDate = startDateTemp[0].split("-"); var arrEndDate = endDateTemp[0].split("-"); var arrStartTime = startDateTemp[1].split(":"); var arrEndTime = endDateTemp[1].split(":"); var allStartDate = new Date(arrStartDate[0], arrStartDate[1], arrStartDate[2], arrStartTime[0], arrStartTime[1], arrStartTime[2]); var allEndDate = new Date(arrEndDate[0], arrEndDate[1], arrEndDate[2], arrEndTime[0], arrEndTime[1], arrEndTime[2]); if (allStartDate.getTime() >= allEndDate.getTime()) { alert("startTime不能大于endTime,不能通过"); return false; } else { alert("startTime小于endTime,所以通过了"); return true; } } else { alert("时间不能为空"); return false; } } //比较日期,时间大小 function compareCalendar(startDate, endDate) { if (startDate.indexOf(" ") != -1 && endDate.indexOf(" ") != -1 ) { //包含时间,日期 compareTime(startDate, endDate); } else { //不包含时间,只包含日期 compareDate(startDate, endDate); } } </script> </html>
转自:http://www.jb51.net/article/45560.htm
以上是关于如何比较两个时间字符串的大小的主要内容,如果未能解决你的问题,请参考以下文章