位置:海鸟网 > IT > JavaScript >

一个Javascript时间格式器

java 和 as3 都有时间格式器的类包,  而工作中又遇到 js 也需要时间格式器, 故花点小心思写了一个, 不算长, 呵呵

类方法:  DateFormater()

1. 用法示例:
var df = new DateFormater('/Y年/0m月/0j日  /0h:/0i:/0s  /a  /D ');
var sDate = df.format( new Date);
alert( sDate );   //输出   2009年09月26日  09:54:33  AM  星期六

2. 格式说明:
/Y     四位年份       2009
/y     二位年份       09
/M    月份简写        Oct.   (可设置)
/m    月份              9
/0m  补0月份         09
/j      日期              6      (若9月6号)
/0j    补0日期        06    (若9月6号)
/D    星期简写       星期六 (可设置)
/d    星期数值       {0-6}   0为星期日

/H    24h小时         9
/0H  24h补0小时   09
/h    12h小时         9
/0h  12h补0小时   09
/i      分钟              54
/0i    补0分钟        54
/s     秒                 33
/0s   补0秒            33
/e     毫秒              9
/0e   补位毫秒       009  (3位)
/a     am/pm简写   AM (可设置)
//      /的转义, 解决格式化的字串, 如需在格式中包含字串 '/H' ,  写成 DateFormater('//H'),  /H就不会被格式化

3. 方法:
创建格式器
var df = new DateFormater('/Y年/0m月/0j日  /0h:/0i:/0s  /a  /D ');
format(Date)        格式化一个日期对象, 返回格式化后的字符串, 例:  alert(  df.format( new Date )  );  
isUTC(boolean)     设置或读取是否以UTC时间来格式化, 默认为GMT时间.  例:  df.isUTC();    df.isUTC(true);
AM(String)            设置或读取am简写的值, 对应格式/a.  例:   df.AM('上午');    alert(  df.format( new Date )  );   // 输出   2009年09月26日  09:54:33  上午  星期六
PM(String)            设置或读取am简写的值, 对应格式/a.  例:   df.PM('P.M.');
weekdays()          设置或读取星期简写的值, 参数错误均返回 false
                            df.weekdays();                          返回星期简写数组: 默认为[ '星期日' - '星期六'];
                            df.weekdays(0);                        返回指定星期简写, 此为 '星期日';
                            df.weekdays('Monday' , 1);       设置指定星期的简写, 这里把星期一设为 'Monday';
                            df.weekdays( ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'] );        设置简写数组, 长度必须为7
months()             设置月份简写的值, 用法同 weekdays,  1月-12月的索引值 {0-11}

4. 示例:
用上下午显示12小时制
var df = new DataFormater('/a /0h:/0i/0s');
df.AM('上午');
df.PM('下午');
alert(  df.format(new Date) );    //系统时间, 输出 :    上午 10:46:55
alert( df.format(new Date(1253933274988)) );    //new Date指定一个时间对象

显示UTC时间
df.isUTC(true);
alert(  df.format(new Date) );    //系统时间, 输出 :    上午 02:46:55    (本地GTM为 +8:00)

5. 代码: