一个时间是 "2009年2月6日 08:00:00";
另外一个时间是 "2010-2-6 08:00:00";
怎样比较大小?

解决方案 »

  1.   

    <script type="text/javascript">   
        var str1 = "2009-2-6 08:00:00";   
        var str2 = "2009-2-6 15:00:00";   
        alert(compareDate(str1,str2));   
           
        function compareDate(d1, d2) {  // 比较时间的方法,d1时间比d2时间大,则返回true   
            return Date.parse(d1.replace(/-/g, "/")) > Date.parse(d2.replace(/-/g, "/"))   
        }   
      
    </script>
      

  2.   

    你时间是那获得的啊是jsp还是数据库
    还是js中获得连接的啊
    在jsp中获得格式yyyy-HH-dd HH:ss:hh<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@ page import="java.text.SimpleDateFormat" %>
    <%
    SimpleDateFormat sdFormate = new SimpleDateFormat("yyyy-HH-dd HH:ss:hh");
    String time = sdFormate.format(new Date());
     %>在js中获得你自己按照格式拼接!~
    如果从数据库中读出的时间是"2009年2月6日 08:00:00";
    那要改变成"2009-2-6 08:00:00"; 我不会用正则,我写个比较麻烦<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    window.onload = function() {
    var time = "2009年2月6日 08:00:00";
    var curTime = time.split(" ");
    var ArrayTime = new Array();
    ArrayTime[0] = curTime[0].substring(0,4);
    ArrayTime[1] = curTime[0].substring(5,6);
    ArrayTime[2] =curTime[0].substring(7,8);
    curTime[0] = ArrayTime.join("-",ArrayTime);
    var joinTime = curTime.join(" ",curTime)
    alert(joinTime);
    }
    //-->
    </SCRIPT>
    </HEAD><BODY></BODY>
    </HTML>
      

  3.   

    你时间是那获得的啊是jsp还是数据库
    还是js中获得连接的啊
    在jsp中获得格式yyyy-HH-dd HH:ss:hh<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@ page import="java.text.SimpleDateFormat" %>
    <%
    SimpleDateFormat sdFormate = new SimpleDateFormat("yyyy-HH-dd HH:ss:hh");
    String time = sdFormate.format(new Date());
     %>在js中获得你自己按照格式拼接!~
    如果从数据库中读出的时间是"2009年2月6日 08:00:00";
    那要改变成"2009-2-6 08:00:00"; 我不会用正则,我写个比较麻烦<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    window.onload = function() {
    var time = "2009年2月6日 08:00:00";
    var curTime = time.split(" ");
    var ArrayTime = new Array();
    ArrayTime[0] = curTime[0].substring(0,4);
    ArrayTime[1] = curTime[0].substring(5,6);
    ArrayTime[2] =curTime[0].substring(7,8);
    curTime[0] = ArrayTime.join("-",ArrayTime);
    var joinTime = curTime.join(" ",curTime)
    alert(joinTime);
    }
    //-->
    </SCRIPT>
    </HEAD><BODY></BODY>
    </HTML>
      

  4.   


    function compareDate(sDate1,sDate2)
    {
        sDate1 = sDate1.replace(/-/g," ").replace(/[\u0391-\uFFE5]/g," ");
        sDate2 = sDate2.replace(/-/g," ").replace(/[\u0391-\uFFE5]/g," ");
        return Date.parse(sDate1)> Date.parse(sDate2);
    }alert(compareDate("2010-2-7 08:00:00","2010年2月8日 08:00:00"));
      

  5.   

    发现一个问题:
    function compareDate(sDate1,sDate2)
    {
        sDate1 = sDate1.replace(/-/g," ").replace(/[\u0391-\uFFE5]/g," ");
        sDate2 = sDate2.replace(/-/g," ").replace(/[\u0391-\uFFE5]/g," ");
        return Date.parse(sDate1)> Date.parse(sDate2);
    }alert(compareDate("2010-2-3 08:00:00","2010年2月8日 08:00:00"));
    2010-2-3这个在IE6下测试为FALSE!
    alert(compareDate("2010-2-9 08:00:00","2010年2月8日 08:00:00"));
    2010-2-9这个在IE6下测试也为FALSE!
    比较的意义不存在了。
      

  6.   

    IE6下好像parse不支持空格作为分隔符;
    试试这个可以不?那就用Date UTC 静态方法吧。function compareDate(sDate1,sDate2)
    {
        arrDate1 = sDate1.split(/[- :\u0391-\uFFE5]/);
        arrDate2 = sDate2.split(/[- :\u0391-\uFFE5]/);
        return Date.UTC.apply(this,arrDate1)> Date.UTC.apply(this,arrDate2);
    }
    alert(compareDate("2010-2-8 09:00:00","2010年2月8日 08:00:00"));
      

  7.   

    function compareDate(sDate1,sDate2) { arrDate1 = sDate1.split(/[- :\u0391-\uFFE5]/); arrDate2 = sDate2.split(/[- :\u0391-\uFFE5]/); return Date.UTC.apply(this,arrDate1)> Date.UTC.apply(this,arrDate2); } alert(compareDate("2010-2-8 09:00:00","2010年2月8日 08:00:00"));
    这个方法在IE6下可行!
    其实开始的方法也可以,关键是正则的匹配没有匹配好!
    这个其实应该也可以:
    function compareDate(sDate1,sDate2)
    {
      sDate1 = sDate1.replace(/-/g,"/").replace(/[\u0391-\uFFE5]/g,"/");
      sDate2 = sDate2.replace(/-/g,"/").replace(/[\u0391-\uFFE5]/g,"/");
      return Date.parse(sDate1)> Date.parse(sDate2);
    }
    关键问题是2010年2月8日匹配后变成了2010/2/8多出了一个/
      

  8.   


    是的,如果用"/"做分隔号也可以的,就是汉字那种情况不好处理,多了一个“/”,IE6下:
    alert(Date.parse("2010 2 8 09:00:00")) // NaN, 不可以
    alert(Date.parse("2010/2/8 09:00:00")) // 这个是支持的。