Flex――字符串转日期函数


  自定义字符串转日期的函数,支持常用的丰富的日期格式 
  /**
  * 字符串转成日期,支持格式:
  * 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() 一致)
  */
  publicstaticfunction ParseDate(value:String):Date
  {
  if (!value)
  returnnew 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 >=      {         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));         returnnew 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]);         returnnew 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() 一致)     */     returnnew 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"); 

猜你喜欢

转载自eisql99n.iteye.com/blog/1573090
今日推荐