ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

日期格式化函数-将日期转换为想要的格式

2020-11-19 19:33:11  阅读:218  来源: 互联网

标签:10 格式化 map 个位 日期 time parseInt 格式 const


使用说明:

    /**     * 日期格式化函数     * @param { Date | string | number }  time  日期原数据     * @param { string } format 时间格式
    * @param { boolean } use12HourClock 是否使用12小时进制
    * @return { string }     */   示例:    let date = new Date();         let newDate = formatTime(date, 'yyyy-MM-dd-d\\\\HH:H*mm-ms');
yyyy 年份 HH 小时
yy 年份后两位 H 小时
MM 月份 mm 分(个位带0)
cM 中文月份 s
eM 英文月份 ss 秒(个位带0)
M 月份(个位带0) m
dd ms 毫秒
d 日(个位带0) w 星期
et AM/ PM ct 上午/下午
                                 
 1     function formatTime(time, format, use12HourClock) {
 2         debugger
 3         if (!time || !format) {
 4             return '';
 5         }
 6         // 判断传入time是否为时间对象, 非时间对象则将其转化
 7         if (Object.prototype.toString.call(time) !== '[object Date]') {
 8             time = new Date(time);
 9         }
10         const map = {};
11         map.i = !0;
12         map.r = /\byyyy|yy|MM|cM|eM|M|dd|d|HH|H|mm|ms|ss|m|s|w|ct|et\b/g;
13 
14         const $12cc = ['上午', '下午'];
15         const $12ec = ['A.M.', 'P.M.'];
16         const week = ['日', '一', '二', '三', '四', '五', '六'];
17         const monthZh = ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二'];
18         const monthEn = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec'];
19 
20         map.yyyy = time.getFullYear();
21         map.yy = (`${map.yyyy}`).substr(2);
22 
23         map.M = time.getMonth() + 1;
24         map.MM = ((parseInt(map.M, 10) || 0) < 10 ? '0' : '') + parseInt(map.M, 10) || 0;
25         map.eM = monthEn[map.M - 1];
26         map.cM = monthZh[map.M - 1];
27 
28         map.d = time.getDate();
29         map.dd = ((parseInt(map.d, 10) || 0) < 10 ? '0' : '') + parseInt(map.d, 10) || 0;
30 
31         map.H = time.getHours();
32         map.HH = ((parseInt(map.H, 10) || 0) < 10 ? '0' : '') + parseInt(map.H, 10) || 0;
33 
34         map.m = time.getMinutes();
35         map.mm = ((parseInt(map.m, 10) || 0) < 10 ? '0' : '') + parseInt(map.m, 10) || 0;
36 
37         map.s = time.getSeconds();
38         map.ss = ((parseInt(map.s, 10) || 0) < 10 ? '0' : '') + parseInt(map.s, 10) || 0;
39 
40         map.ms = time.getMilliseconds();
41 
42         map.w = week[time.getDay()];
43 
44         const am = map.H < 12 ? 0 : 1;
45         map.ct = $12cc[am];
46         map.et = $12ec[am];
47         if (use12HourClock) {
48             map.H %= 12;
49         }
50         return format.replace(map.r, ($1) => {
51             const result = map[map.i ? $1 : $1.toLowerCase()];
52             return result == null ? $1 : result;
53         })
54     };

 

标签:10,格式化,map,个位,日期,time,parseInt,格式,const
来源: https://www.cnblogs.com/rookieKong/p/14007429.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有