javascript日期对象格式化为字符串的实现方法
javascript提供的日期格式化太简单,一般应用都需要自己实现格式化方法.下面是我想出的一个格式化处理方案,应该是可以满足常用的需求.日期模板中可以使用任意分隔符,还可以使用文字作为分隔符,甚至支持类似yyyyMMdd之类没有分隔符的格式化.
原理:用正则表达式将日期模板中的日期元素[如yyyy,MM,dd]和分隔符拆分成数组,然后用实际的值替换日期元素形成日期字符串.
实现共有两个函数,粘贴可运行.
示例中只支持了年月日时分秒毫秒的元素,如果需要显示星期则可以在values中添加w=getDay(),将正则表达式修改为y+|M+|d+|H+|m+|s+|S+|w+|[^yMdHmsSw]/g即可.
如果需要将月份或星期显示为全拼或简拼英文,可以在cfg中增加相应配置,我只在cfg中增加了一个示例
vardate=newDate();
varstr=formatDate(date,"yyyy年MMM月dd日");
则str的值为2012年七月29日
/**
*格式化整数
*@paramnumber:number要格式化的整数
*@paramfmt:string整数格式
*/
functionformatNumber(number,fmt){
number=number+"";
if(fmt.length>number.length){
returnfmt.substring(number.length)+number;
}
returnnumber;
}
/**
*格式化日期为字符串表示
*@paramdatetime:Date要格式化的日期对象
*@paramformat:String日期格式
*/
functionformatDate(datetime,format){
varcfg={
MMM:["一","二","三","四","五","六","七","八","九","十","十一","十二"],
MMMM:["一","二","三","四","五","六","七","八","九","十","十一","十二"]
},
values={
y:datetime.getFullYear(),
M:datetime.getMonth(),
d:datetime.getDate(),
H:datetime.getHours(),
m:datetime.getMinutes(),
s:datetime.getSeconds(),
S:datetime.getMilliseconds()
};
/*用正则表达式拆分日期格式各个元素*/
varelems=format.match(/y+|M+|d+|H+|m+|s+|S+|[^yMdHmsS]/g);
//将日期元素替换为实际的值
for(vari=0;i<elems.length;i++){
if(cfg[elems[i]]){
elems[i]=cfg[elems[i]][values[elems[i].charAt(0)]];
}elseif(values[elems[i].charAt(0)]){
elems[i]=formatNumber(values[elems[i].charAt(0)],elems[i].replace(/./g,"0"));
}
}
returnelems.join("");
}
相关文章
- JavaScript数组方法总结
- javascript html转换成markdown,如何使用Turndown使用JavaScript将HTML转换为Markdown[通俗易懂]
- 【Vue】1524- 分享 22 道常被问及的 JavaScript 面试题
- JavaScript 日期选择器 Pikaday 的高级用法
- JavaScript时间日期格式转换详解编程语言
- JavaScript学习总结(五)——Javascript中==和===的区别详解编程语言
- 使用JavaScript访问MySQL数据库(js调用mysql数据库)
- javascript实现二分查找法实现代码
- Javascript更新JavaScript数组的uniq方法
- 一个写得较好的JavaScript日期挑选控件
- Javascript日期处理之时区问题
- javascript日期常用的方法
- javascript当前日期转化为中文的实现代码
- JavaScript初学者应注意的七个细节详细介绍
- JavaScript自定义日期格式化函数详细解析
- JavaScript在for循环中绑定事件解决事件参数不同的情况
- javascript日期格式化示例分享
- JavaScript日期时间格式化函数分享
- JavaScript数值数组排序示例分享
- Javascript限制网页只能在微信内置浏览器中访问