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
今日推荐
周排行