ts 格式化日期输出
2016-05-09 14:39
435 查看
功能
像C#中DateTime的ToString的格式化输出一样,在js/ts中输出格式化的日期字符串网上很多正则的,不加分隔符就不行了,和C#的格式也不一样
刚接触js/ts没两月,可能会有问题。
效果
实现
/** * 对日期进行格式化, 和C#大致一致 默认yyyy-MM-dd HH:mm:ss * 可不带参数 一个日期参数 或一个格式化参数 * @param date 要格式化的日期 * @param format 进行格式化的模式字符串 * 支持的模式字母有: * y:年, * M:年中的月份(1-12), * d:月份中的天(1-31), * H:小时(0-23), * h:小时(0-11), * m:分(0-59), * s:秒(0-59), * f:毫秒(0-999), * q:季度(1-4) * @return String * @author adswads@gmail.com */ public dateFormat(date?: any, format?: string): string { //无参数 if (date == undefined && format == undefined) { date = new Date(); format = "yyyy-MM-dd HH:mm:ss"; } //无日期 else if (typeof (date) == "string") { format = date; date = new Date(); } //无格式化参数 else if (format === undefined) { format = "yyyy-MM-dd HH:mm:ss"; } else { } //没有分隔符的特殊处理 var map = { "y": date.getFullYear() + "",//年份 "M": date.getMonth() + 1 + "", //月份 "d": date.getDate() + "", //日 "H": date.getHours(), //小时 24 "m": date.getMinutes() + "", //分 "s": date.getSeconds() + "", //秒 "q": Math.floor((date.getMonth() + 3) / 3) + "", //季度 "f": date.getMilliseconds() + "" //毫秒 }; //小时 12 if (map["H"] > 12) { map["h"] = map["H"] - 12 + ""; } else { map["h"] = map["H"] + ""; } map["H"] += ""; var reg = "yMdHhmsqf"; var all = "", str = ""; for (var i = 0, n = 0; i < reg.length; i++) { n = format.indexOf(reg[i]); if (n < 0) { continue; } all = ""; for (; n < format.length; n++) { if (format != reg[i]) { break; } all += reg[i]; } if (all.length > 0) { if (all.length == map[reg[i]].length) { str = map[reg[i]]; } else if (all.length > map[reg[i]].length) { if (reg[i] == "f") { str = map[reg[i]] + this.charString("0", all.length - map[reg[i]].length); } else { str = this.charString("0", all.length - map[reg[i]].length) + map[reg[i]]; } } else { switch (reg[i]) { case "y": str = map[reg[i]].substr(map[reg[i]].length - all.length); break; case "f": str = map[reg[i]].substr(0, all.length); break; default: str = map[reg[i]]; break; } } format = format.replace(all, str); } } return format; } /** * 返回字符串 为n个char构成 * @param char 重复的字符 * @param count 次数 * @return String * @author adswads@gmail.com */ public charString(char: string, count: number): string { var str: string = ""; while (count--) { str += char; } return str; }
相关文章推荐
- 图结构
- boost muti-thread
- 解决传说中的 Android 65k 问题
- 1.2.第一个实验——点亮LED灯
- Android studio常用插件
- iOS之UI学习-UITextField属性篇
- android开发glide图片加载框架使用示例
- vue中v-bind:class动态添加class
- 【JAVA 动态创建风水罗盘 超精华Swing项目方案-项目源码 - 文章04】
- 我的c\c++之旅(三)——堆排序
- 指出下面程序的运行结果
- 对LayoutInflater的简单理解
- (原)配置vs2013使用intel的IPP库
- Linux搭建SVN服务器
- Beamforming技术在专网宽带无线通信系统中的应用
- 带武器的游戏角色类
- 游戏引擎起步杂谈
- 第六章 开发一个MapReduce应用 第一节 配置
- javascript函数调用方式总结(共四种)-理解this
- 常用正则表达式应用