js日期时间格式化
将日期时间转换为指定格式,如:YYYY-mm-dd HH:MM表示2019-06-06 19:45
function dateFormat(fmt, date) {
    let ret;
    const opt = {
        "Y+": date.getFullYear().toString(),        // 年
        "m+": (date.getMonth() + 1).toString(),     // 月
        "d+": date.getDate().toString(),            // 日
        "H+": date.getHours().toString(),           // 时
        "M+": date.getMinutes().toString(),         // 分
        "S+": date.getSeconds().toString()          // 秒
        // 有其他格式化字符需求可以继续添加,必须转化成字符串
    };
    for (let k in opt) {
        ret = new RegExp("(" + k + ")").exec(fmt);
        if (ret) {
            fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
        };
    };
    return fmt;
}
用法:
let date = new Date()
dateFormat("YYYY-mm-dd HH:MM", date)
>>> 2019-06-06 19:45`
如果对日期时间处理的需求较多, 推荐moment.js这个日期处理类库, 简单方便.
Moment.js格式化日期时间
Moment.js是一个轻量级的JavaScript时间库,它方便了日常开发中对时间的操作,提高了开发效率。日常开发中,通常会对时间进行这几个操作:比如获取时间,设置时间,格式化时间,比较时间等等。
格式化日期
当前时间:
moment().format('YYYY-MM-DD HH:mm:ss'); //2014-09-24 23:36:09 
今天是星期几:
moment().format('d'); //3 
转换当前时间的Unix时间戳:
moment().format('X'); 
相对时间
20120901相对当前日期是2年前
moment("20120901", "YYYYMMDD").fromNow(); //2 years ago 
7天后的日期:
moment().add('days',7).format('YYYY年MM月DD日'); //2014年10月01日 
9小时后的时间:
moment().add('hours',9).format('HH:mm:ss'); 
moment.js提供了丰富的说明文档,使用它还可以创建日历项目等复杂的日期时间应用。我们日常开发中最常用的是格式化时间,下面我把常用的格式制作成表格说明供有需要的朋友查看:
| 格式代码 | 说明 | 返回值例子 | 
| M | 数字表示的月份,没有前导零 | 1到12 | 
| MM | 数字表示的月份,有前导零 | 01到12 | 
| MMM | 三个字母缩写表示的月份 | Jan到Dec | 
| MMMM | 月份,完整的文本格式 | January到December | 
| Q | 季度 | 1到4 | 
| D | 月份中的第几天,没有前导零 | 1到31 | 
| DD | 月份中的第几天,有前导零 | 01到31 | 
| d | 星期中的第几天,数字表示 | 0到6,0表示周日,6表示周六 | 
| ddd | 三个字母表示星期中的第几天 | Sun到Sat | 
| dddd | 星期几,完整的星期文本 | 从Sunday到Saturday | 
| w | 年份中的第几周 | 如42:表示第42周 | 
| YYYY | 四位数字完整表示的年份 | 如:2014 或 2000 | 
| YY | 两位数字表示的年份 | 如:14 或 98 | 
| A | 大写的AM PM | AM PM | 
| a | 小写的am pm | am pm | 
| HH | 小时,24小时制,有前导零 | 00到23 | 
| H | 小时,24小时制,无前导零 | 0到23 | 
| hh | 小时,12小时制,有前导零 | 00到12 | 
| h | 小时,12小时制,无前导零 | 0到12 | 
| m | 没有前导零的分钟数 | 0到59 | 
| mm | 有前导零的分钟数 | 00到59 | 
| s | 没有前导零的秒数 | 1到59 | 
| ss | 有前导零的描述 | 01到59 | 
| X | Unix时间戳 | 1411572969 | 
更多有关moment.js的介绍,请访问项目官网:http://momentjs.com/
	声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
		
评论(0)