论坛首页 Web前端技术论坛

实现一个日期比较的方法

浏览 9270 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-07-04  
我想实现一个日期比较的方法,比如我从input中得到一个日期的string '2006-06-04',然后跟我制定的日期比较看是否大于我的日期,我写了个但觉得不好,大家有没有好的写法,共享一下
   var dateStr= '1997-09-08';//格式是写死的就是yyyy-MM-dd
   var dateArr = dateStr.split('-');
   var date = new Date(dateArr[0],dateArr[1],dateArr[2]);
   var date1 = new Date('1997','09','09');
   alert(date>date1?'大':'小');
   发表时间:2007-07-04  
既然格式是写死的,直接比较字符串啊
alert("2007-12-01">"2007-11-02");
0 请登录后投票
   发表时间:2007-07-04  
唉,我咋没想到呢,谢谢楼上,我一直都没往字符串比较那想,老是想把它new成date对象再比较,
楼上,我想在问一下,有没有更好的方法把一个字符串显示的日期,new成一个date型的对象呢
0 请登录后投票
   发表时间:2007-07-04  
parse方法,不过这个方法要求字符串具有一定的格式,根据地点特定

var date=new Date(Date.parse("2007/07/04"));
0 请登录后投票
   发表时间:2007-07-04  
Date.parse 貌似不是这种格式吧?

记得是rfc的格式。
讨厌这种格式,月份搞个什么英文缩写,让非英语国家的人看起来不爽。
0 请登录后投票
   发表时间:2007-07-05  
rfc格式嘛,确实讨人嫌。俺们喜欢w3c-dtf(iso8601的子集),未来的js2的Date.parse会支持。
0 请登录后投票
   发表时间:2007-07-05  
小弟写了个根据给定的模型创建日期的例子,当然肯定很不严谨,望大家指出不对的地方
 Date.createDate=function(dateValue,pattern){
        if(pattern==null)
            throw new Error('pattern is not null');
        var start = 0;//开始位置
        var count = 0;//位数
        var dateArr =[];
        
        //get year
        var start = pattern.indexOf('y');
        var count = pattern.split('y').length-1;
        dateArr[0] = dateValue.substr(start,count);
        
        //get month
        start = pattern.indexOf('m');
        count = pattern.split('m').length-1;
        dateArr[1] = dateValue.substr(start,count);
       
        //get date
        start = pattern.indexOf('d');
        count = pattern.split('d').length-1;
        dateArr[2] = dateValue.substr(start,count);
        
        return new Date(dateArr[0],dateArr[1],dateArr[2]);
    }
    alert(Date.createDate('1997/09/09','yyyy-mm-dd'));

0 请登录后投票
   发表时间:2007-07-05  
如果格式确定的话,有个最简单的方法。
js 代码
 
  1. alert(input1.value.replace(/\D/g,"") - input2.value.replace(/\D/g,""))  
0 请登录后投票
   发表时间:2007-07-07  
呵呵,学习各位的!
0 请登录后投票
   发表时间:2007-07-07  
Date.parse(date1.replace(/\D/,"/")) == Date.parse(date2.replace(/\D/,"/"))
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics