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的了。。。

  • 相关阅读:
    centos7.0 没有netstat 命令问题
    Linux系统下安装rz/sz命令及使用说明
    怎样查看linux版本
    MongoDB 的 GridFS 详细分析
    MongoDb的bin目录下文件mongod,mongo,mongostat命令的说明及使用
    MongoDB基本使用
    安装concrete时提示“...database does not support InnoDB database tables..."如何解决
    最近开始研究PMD(一款采用BSD协议发布的Java程序代码检查工具)
    如何利用论坛做推广 | 一个每天可以吸引50粉丝的推广思路
    那些高阅读量文章的标题都是怎么取的?14种模板直接套用
  • 原文地址:https://www.cnblogs.com/think/p/518515.html
Copyright © 2011-2022 走看看