zoukankan      html  css  js  c++  java
  • [JS]格式化Date和分析格式化Date字符串的JS代码

    最近打算重构DateChooser控件,使用ASP.NET2.0新特性,不使用HTC以更好支持Cross-browser,先写了个日期格式的JS文件,欢迎大家使用

    //Date.js
    Date.prototype.format = function(formatter)
    {
        
    if(!formatter || formatter == "")
        
    {
            formatter 
    = "yyyy-MM-dd";
        }

        
    var year = this.getYear().toString();
        
    var month = (this.getMonth() + 1).toString();
        
    var day = this.getDate().toString();
        
    var yearMarker = formatter.replace(/[^y|Y]/g,'');
        
    if(yearMarker.length == 2)
        
    {
            year 
    = year.substring(2,4);
        }
        
        
    var monthMarker = formatter.replace(/[^m|M]/g,'');
        
    if(monthMarker.length > 1)
        
    {
            
    if(month.length == 1
            
    {
                month 
    = "0" + month;
            }

        }
        
        
    var dayMarker = formatter.replace(/[^d]/g,'');
        
    if(dayMarker.length > 1)
        
    {
            
    if(day.length == 1
            
    {
                day 
    = "0" + day;
            }

        }
        
        
    return formatter.replace(yearMarker,year).replace(monthMarker,month).replace(dayMarker,day);    
    }


    Date.parseString 
    = function(dateString,formatter)
    {
        
    var today = new Date();
        
    if(!dateString || dateString == "")
        
    {
            
    return today;
        }

        
    if(!formatter || formatter == "")
        
    {
            formatter 
    = "yyyy-MM-dd";
        }
      
        
    var yearMarker = formatter.replace(/[^y|Y]/g,'');   
        
    var monthMarker = formatter.replace(/[^m|M]/g,'');   
        
    var dayMarker = formatter.replace(/[^d]/g,'');
        
    var yearPosition = formatter.indexOf(yearMarker);
        
    var yearLength = yearMarker.length;
        
    var year =  dateString.substring(yearPosition ,yearPosition + yearLength) * 1;
        
    if( yearLength == 2)
        
    {
            
    if(year < 50 )
            
    {
                year 
    += 2000;
            }

            
    else
            
    {
                year 
    += 1900;
            }

        }

        
    var monthPosition = formatter.indexOf(monthMarker);
        
    var month = dateString.substring(monthPosition,monthPosition + monthMarker.length) * 1 - 1;
        
    var dayPosition = formatter.indexOf(dayMarker);
        
    var day = dateString.substring( dayPosition,dayPosition + dayMarker.length )* 1;
        
    return new Date(year,month,day);
    }


    使用方法(只支持日期部分,当然要先引用<script src="THIN/ClientFiles/Date.js" type="text/javascript"></script>):

    alert(Date.parseString(new Date().format("MM月dd日yy年"),"MM月dd日yy年"));
    var today = new Date();
    var todayString = today.format("yyyy-MM-dd");
    alert(todayString);
    var parsedDate = Date.parseString(todayString);
    alert(parsedDate);

    Birdshome写过URL的工具类,忘了有没有写Date的了。。。

  • 相关阅读:
    附加数据库对于服务器失败5120
    c#程序调试没有问题,Ctrl+F5运行就挂
    c#让某个窗体一直显示于桌面最上方
    c#调用GrADS
    备份对于服务器“”失败,加载的介质已格式化为支持1个介质簇,但根据指定的备份设备,应支持2个介质簇
    Assembly.Load()出错
    对控件部分的截图和录像
    创建oracle本地数据库步骤详解
    基于windows的resin配置
    oracle 插入记录,字段自动获取当前系统时间(YYYY-MM-DD HH24:MI:SS)
  • 原文地址:https://www.cnblogs.com/think/p/518515.html
Copyright © 2011-2022 走看看