最近打算重构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的了。。。

[JS]格式化Date和分析格式化Date字符串的JS代码相关推荐

  1. JavaScript 技术篇-js自动转换类型,自动转换为字符串,js避免自动转换的坑

    自动转换类型 当 JavaScript 尝试操作一个 "错误" 的数据类型时,会自动转换为 "正确" 的数据类型. 而往往这种隐式的转化可能给程序带来很多莫名奇 ...

  2. redux源码分析之二:combineReducers.js

    欢迎关注redux源码分析系列文章: redux源码分析之一:createStore.js redux源码分析之二:combineReducers.js redux源码分析之三:bindActionC ...

  3. java date 格式化_Date类日期格式化

    import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; /* * 对日期进 ...

  4. linux如何更改服务器时间格式,Linux中date命令,格式化输出,时间设置

    date命令的帮助信息 [root@localhost source]# date --help 用法:date [选项]...[+格式] 或:date [-u|--utc|--universal] ...

  5. linux当前时间 按格式化,Linux下date命令,格式化输出,时间设置

    date命令的帮助信息 [root@localhost source]# date --help 用法:date [选项]... [+格式] 或:date [-u|--utc|--universal] ...

  6. SimpleDateFormat的使用:SimpleDateFormat对日期Date类的格式化和解析

    SimpleDateFormat的两个操作: 1.格式化:日期 ----->字符串 2.解析:格式化的逆过程,字符串 -----> 日期 public class DateTimeTest ...

  7. Java日期类 util.Date sql.Date Calendar LocalDateTime 格式化 DateFormat DateTimeFormatter

    java 日期类 java.util.Date Date有两个附加功能. 它允许将日期解释为年,月,日,小时,分钟和第二个值. 它还允许格式化和解析日期字符串. 但这些功能的API不适合国际化. 从J ...

  8. Linux下date命令,格式化输出

    date命令的帮助信息 [root@localhost source]# date --help 用法:date [选项]... [+格式]或:date [-u|--utc|--universal] ...

  9. java中的时间戳sssss_Golang中使用Date进行日期格式化(沿用Java风格)

    本文介绍了Golang中使用Date进行日期格式化,分享给大家,具体如下: Date Date是一个基于time包装的一个日期包,通过此包可以快速创建日期.获取时间戳.毫秒数及最重要的日期格式化,另外 ...

最新文章

  1. web前端培训:CSS中单行文本溢出显示省略号的方法
  2. 百度指数常见php框架,怎么导出数据到excel表格-如何将百度指数数据导出到Excel表格...
  3. python估计物体角度
  4. python是不是特别垃圾-11道Python最基本的面试题,不会好好反思吧!
  5. log4cxx体系结构
  6. 全球及中国香蕉连接器行业投资商机与前景趋势展望报告2022版
  7. 51nod1812树的双直径(换根树DP)
  8. 热释电传感器三个引脚_智能家居组件漫谈——人体传感器
  9. C++ ACM程序设计大赛--练习1
  10. AWS学习(一)——AWS云技术基础
  11. 嵌入式Linux——学习经历
  12. 【python】99 Bottles Of Beer
  13. 如何用Python给自己做一个年终总结
  14. 世界互联网大会上有哪些黑客科技值得关注?
  15. 阿里云CAC_DevOps课程详细文字文档
  16. 温莎计算机应用硕士是针对国际学生的吗,专业推荐 | 加拿大留学,温莎大学英语计算机专业了解一下...
  17. 读《楚汉传奇》中历史故事悟项目管理
  18. 怎么编辑gif动态图片?gif动图编辑的操作步骤
  19. Window管理右键菜单
  20. python字典怎么处理_Python字典的处理

热门文章

  1. 大咖来信 | 微软中国CTO韦青:低代码/无代码时代来了,写代码的你准备好了吗?...
  2. 飞桨端到端开发套件揭秘:低成本开发的四大秘密武器
  3. 阿里达摩院青橙奖再颁发!10名大陆青年科学家各获100万,最小获奖者28岁
  4. 意念实时转语音!Facebook的非植入式脑机接口,解码准确率达到76%
  5. 55:Mysql用户管理|常用sql语句|mysql数据库备份恢复
  6. Mysql分析性能(存储过程)
  7. Spring4+quartz2集群借助邮箱或是短信实现生日的农历提醒(Quartz实现农历、阴历、公历生日提醒)...
  8. 解决java.lang.IllegalStateException: getOutputStream() has already been called for this response
  9. idea 亮度 调整_WIN10 困扰多时的屏幕亮度 终于可以调节了-完美 -更新2018年2月28日...
  10. python coding_python开头的coding设置方法