随笔 - 432  文章 - 0  评论 - 15  阅读 - 63万

javascript Date format(js日期格式化)

javascript Date format(js日期格式化)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<script type="text/javascript"
 
/*  
函数:格式化日期  
参数:formatStr-格式化字符串  
d:将日显示为不带前导零的数字,如1  
dd:将日显示为带前导零的数字,如01  
ddd:将日显示为缩写形式,如Sun  
dddd:将日显示为全名,如Sunday  
M:将月份显示为不带前导零的数字,如一月显示为1  
MM:将月份显示为带前导零的数字,如01 
MMM:将月份显示为缩写形式,如Jan 
MMMM:将月份显示为完整月份名,如January 
yy:以两位数字格式显示年份 
yyyy:以四位数字格式显示年份 
h:使用12小时制将小时显示为不带前导零的数字,注意||的用法 
hh:使用12小时制将小时显示为带前导零的数字 
H:使用24小时制将小时显示为不带前导零的数字 
HH:使用24小时制将小时显示为带前导零的数字 
m:将分钟显示为不带前导零的数字 
mm:将分钟显示为带前导零的数字 
s:将秒显示为不带前导零的数字 
ss:将秒显示为带前导零的数字 
l:将毫秒显示为不带前导零的数字 
ll:将毫秒显示为带前导零的数字 
tt:显示am/pm 
TT:显示AM/PM 
返回:格式化后的日期 
*/
Date.prototype.format = function (formatStr) { 
    var date = this
    /* 
    函数:填充0字符 
    参数:value-需要填充的字符串, length-总长度 
    返回:填充后的字符串 
    */
    var zeroize = function (value, length) { 
        if (!length) { 
            length = 2; 
        
        value = new String(value); 
        for (var i = 0, zeros = ''; i < (length - value.length); i++) { 
            zeros += '0'
        
            return zeros + value; 
    }; 
    return formatStr.replace(/"[^"]*"|'[^']*'|\b(?:d{1,4}|M{1,4}|yy(?:yy)?|([hHmstT])\1?|[lLZ])\b/g, function($0) { 
        switch ($0) { 
            case 'd': return date.getDate(); 
            case 'dd': return zeroize(date.getDate()); 
            case 'ddd': return ['Sun', 'Mon', 'Tue', 'Wed', 'Thr', 'Fri', 'Sat'][date.getDay()]; 
            case 'dddd': return ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'][date.getDay()]; 
            case 'M': return date.getMonth() + 1; 
            case 'MM': return zeroize(date.getMonth() + 1); 
            case 'MMM': return ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'][date.getMonth()]; 
            case 'MMMM': return ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'][date.getMonth()]; 
            case 'yy': return new String(date.getFullYear()).substr(2); 
            case 'yyyy': return date.getFullYear(); 
            case 'h': return date.getHours() % 12 || 12; 
            case 'hh': return zeroize(date.getHours() % 12 || 12); 
            case 'H': return date.getHours(); 
            case 'HH': return zeroize(date.getHours()); 
            case 'm': return date.getMinutes(); 
            case 'mm': return zeroize(date.getMinutes()); 
            case 's': return date.getSeconds(); 
            case 'ss': return zeroize(date.getSeconds()); 
            case 'l': return date.getMilliseconds(); 
            case 'll': return zeroize(date.getMilliseconds()); 
            case 'tt': return date.getHours() < 12 ? 'am' : 'pm'; 
            case 'TT': return date.getHours() < 12 ? 'AM' : 'PM'; 
        
    }); 
}
 
document.writeln(new Date().format("yyyy-MM-dd hh:mm:ss")); 
</script>

  

posted on   狼来了  阅读(1892)  评论(0编辑  收藏  举报
编辑推荐:
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

点击右上角即可分享
微信分享提示