Flex——字符串转日期函数

news/2024/5/19 18:00:58 标签: flex, date, function, string, 测试

自定义字符串转日期的函数,支持常用的丰富的日期格式

/**

* 字符串转成日期,支持格式:

* yyyyMMdd

* yyyyMMddHH

* yyyyMMddHHmm

* yyyyMMddHHmmss

* yyyy-MM-dd("-"作判断关键字)

* yyyy-MM-dd HH("-"作判断关键字)

* yyyy-MM-dd HH("-"作判断关键字)

* yyyy-MM-dd HH:mm ("-"作判断关键字)

* yyyy-MM-dd HH:mm:ss("-"作判断关键字)

* yyyy年MM月dd日("年"作判断关键字)

* yyyy年MM月dd日HH时("年"作判断关键字)

* yyyy年MM月dd日HH时mm分("年"作判断关键字)

* yyyy年MM月dd日HH时mm分ss秒("年"作判断关键字)

* MM/dd/yyyy(例如,"02/01/2005")

* MM/dd/yyyy HH:mm:ss

* MM/yyyy dd(例如,"02/2005 23")

* Day Month Date Hours:Minutes:Seconds GMT Year(例如,"Tue Feb 1 00:00:00 GMT-0800 2005",这与 toString() 一致)

* Day Month Date Year Hours:Minutes:Seconds AM/PM(例如,"Tue Feb 1 2005 12:00:00 AM",这与 toLocaleString() 一致)

* Day Month Date Year Hours:Minutes:Seconds(例如,"Tue Feb 1 2005 23:59:59")

* Day Month Date Year(例如,"Tue Feb 1 2005",这与 toDateString() 一致)

*/

public static function ParseDate(value:String):Date

{

    if (!value)

        return new Date();

    var year:Number;

    var month:Number;

    var date:Number;

    var h:Number = 0;

    var m:Number = 0;

    var s:Number = 0;

    var ms:Number = 0;

    /*

    * yyyyMMdd

    * yyyyMMddHH

    * yyyyMMddHHmm

    * yyyyMMddHHmmss

    */

    if(!isNaN(Number(value)) && value.length >= 8)

    {

        year = Number(value.substr(0, 4));

        month = Number(value.substr(4, 2)) -1;

        date = Number(value.substr(6, 2));

        if(value.length>=10)

            h = Number(value.substr(8, 2));

        if(value.length>=12)

            m = Number(value.substr(10, 2));

        if(value.length>=14)

            s = Number(value.substr(12, 2));

 

        return new Date(year, month, date,h,m,s,ms);

    }

    /*

    * yyyy-MM-dd("-"作判断关键字)

    * yyyy-MM-dd HH("-"作判断关键字)

    * yyyy-MM-dd HH("-"作判断关键字)

    * yyyy-MM-dd HH:mm ("-"作判断关键字)

    * yyyy-MM-dd HH:mm:ss("-"作判断关键字)

    * yyyy年MM月dd日("年"作判断关键字)

    * yyyy年MM月dd日HH时("年"作判断关键字)

    * yyyy年MM月dd日HH时mm分("年"作判断关键字)

    * yyyy年MM月dd日HH时mm分ss秒("年"作判断关键字)

    */

    if(value.indexOf("-")>0 || value.indexOf("年")>0)

    {

        var match:Array = value.match( //d+/g );

        year = Number(match[0]);

        month = Number(match[1]) -1;

        date = Number(match[2]);

        if(match.length>3)

            h = Number(match[3]);

        if(match.length>4)

            m = Number(match[4]);

        if(match.length>5)

            s = Number(match[5]);

        

        return new Date(year, month, date,h,m,s,ms);

    }

 

    /*

    * MM/dd/yyyy(例如,"02/01/2005")

    * MM/dd/yyyy HH:mm:ss

    * MM/yyyy dd(例如,"02/2005 23")

    * Day Month Date Hours:Minutes:Seconds GMT Year(例如,"Tue Feb 1 00:00:00 GMT-0800 2005",这与 toString() 一致)

    * Day Month Date Year Hours:Minutes:Seconds AM/PM(例如,"Tue Feb 1 2005 12:00:00 AM",这与 toLocaleString() 一致)

    * Day Month Date Year Hours:Minutes:Seconds(例如,"Tue Feb 1 2005 23:59:59")

    * Day Month Date Year(例如,"Tue Feb 1 2005",这与 toDateString() 一致)

    */

    return new Date(value);

}

 

测试通过的例子:

TestDate("20111213");

TestDate("2011121323");

TestDate("201112132359");

TestDate("20111213235959");

 

TestDate("2011-12-13");

TestDate("2011-12-13 23");

TestDate("2011-12-13 23:59");

TestDate("2011-12-13 23:59:59");

 

TestDate("2011年12月13日");

TestDate("2011年12月13日23时");

TestDate("2011年12月13日23时59分");

TestDate("2011年12月13日23时59分59秒");

 

TestDate("12/13/2011");

TestDate("12/13/2011 23:59:59");

TestDate("12/2011 23");

 

TestDate("Fri Dec 23 00:00:00 GMT+0800 2011");

TestDate("Fri Dec 23 23:00:00 GMT+0800 2011");

TestDate("Fri Dec 23 23:59:00 GMT+0800 2011");

TestDate("Fri Dec 23 23:59:59 GMT+0800 2011");

 

TestDate("Fri Dec 23 2011 12:00:00 AM");

TestDate("Fri Dec 23 2011 11:00:00 PM");

TestDate("Fri Dec 23 2011 11:59:00 PM");

TestDate("Fri Dec 23 2011 11:59:59 PM");

 

TestDate("Fri Dec 23 2011 00:00:00");

TestDate("Fri Dec 23 2011 23:00:00");

TestDate("Fri Dec 23 2011 23:59:00");

TestDate("Fri Dec 23 2011 23:59:59");

 

TestDate("Fri Dec 23 2011");


http://www.niftyadmin.cn/n/1574696.html

相关文章

MySQL数据库运维之主从复制延迟问题排查

上篇文章介绍了单机环境下的MySQL主从异步复制和主从半同步复制的搭建过程。搭建过程很简单,但是在实际使用过程中,更多的是解决问题,本篇文章将介绍一下MySQL主从复制中常见的问题以及如何定位问题和如何解决问题。一、从库复制延迟问题 1、…

Fixcel电子表单——介绍

概述 Fxicel电子表单主要提供了B/S系统上的表单设计,表单填写/提交,表单预览/打印这几部分的功能集,采用Flex技术研发,提供非常友好的丰富的用户体现。 管理系统的数据录入/上报是非常重要的部分,Fixcel采用非常灵…

面向对象程序设计 小黄衫晒单

晒单图 ps:面无表情的我。。。 晒单感想 心情复杂。。。 想起知道的大佬的事迹,还需要更加努力啊。。。 百感交集。。。 转载于:https://www.cnblogs.com/passguan/p/9205703.html

Flex:Web报表引擎——MyReport 2.3.6.0新功能

新增功能 支持打开和保存客户端本地报表样式文件。 改良标题行,表格列,表格行等的编辑效果,显示更直观。 标题行支持单个或多个单元格的添加。 支持行合并,能实现更丰富的报表格式展示。 优化报表样式的数据量,便…

git在终端的使用指南

git 常用命令git init 如果你要把某个文件夹初始化为git仓库,那么先 cd 到该目录,然后使用git init 初始化仓库,会有Initialized empty Git repository in 仓库路径/.git/ 表示一个空的仓库已经建立好了git status该命令可以查看仓库当前的状…

Fixcel电子表单——表单设计器

概述 表单设计器用于设计业务所需的表单模板或报表模板。 采用与Office Excel的类似的界面显示、编辑方式和、操作方式等,让设计人员更容易地接收和掌握设计器的使用,降低培训难度。 主要功能说明 单元格的输入方式:设计表单时&#xff…

jquery-4 完整表单验证实例

jquery-4 完整表单验证实例 一、总结 一句话总结:在form的jquery对象中返回false即可终止表单提交。 1、验证的显示错误消息如何布局? 开始时隐藏,出现错误后显示 10 .error{11 color:#f00; 12 font-weight: bold; 13…

Fixcel电子表单——表单引擎

概述 表单是数据上报、数据采集的重要业务单元。是奋战在信息系统前线的业务人员经常打交道的操作模块。一个良好的表单引擎,能够帮助业务人员能够高效的,准确的录入企业所需的数据。 通过Fixcel表单设计器能够设计出各种业务所需的业务表单&#xf…