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() 一致) */ 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,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"); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |