JavaScript日期Format格式化

1、Date类拓展方法

01
02
03
04
05
06
07
08
09
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
Date.prototype.Format = function (fmt) {
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"H+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
 
var week = {          
"0" : "u65e5",          
"1" : "u4e00",          
"2" : "u4e8c",          
"3" : "u4e09",          
"4" : "u56db",          
"5" : "u4e94",          
"6" : "u516d"         
    };
 
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
}
 
if(/(E+)/.test(fmt)){          
        fmt=fmt.replace(RegExp.$1, ((RegExp.$1.length>1) ? (RegExp.$1.length>2 ? "u661fu671f" : "u5468") : "")+week[this.getDay()+""]);          
    }
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
 
return fmt;
}

2、格式化格式

  • 月(M)、日(d)、小时(H)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符
  • 年(y)可以用 1-4 个占位符
  • 毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
  • 周(E),可以用1-3个占位符

3、格式化方法

1)格式化时间戳

1
2
3
function formatDate(timestamp, format) {
return new Date(parseInt(timestamp)).Format(format);
}

2)格式化短日期

1
2
3
function formatTDate(time) {
return formatDate(time, "yyyy年MM月dd日");
}

3)格式化年份

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
function formatTDYear(time) {
return formatDate(time, "yyyy");
}
 
function formatTDYearCN(time) {
return formatCNYear(formatDate(time, "yyyy"));
}
 
function formatCNYear(num) {
var map = {"0":"零", "1":"一", "2":"二", "3":"三", "4":"四", "5":"五", "6":"六", "7":"七", "8":"八", "9":"九"};
var result = "";
var temp = parseInt(num);
 
while (temp > 0){
result = map[temp % 10] + result;
temp = parseInt(temp / 10);
}
 
return result;
}

4)格式化月份

01
02
03
04
05
06
07
08
09
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
function formatTDMonth(time) {
return formatDate(time, "M");
}
 
function formatTDMonthEN(time) {
var month = formatDate(time, "M");
var map = {"1":"Jan", "2":"Feb", "3":"Mar", "4":"Apr", "5":"May", "6":"Jun", "7":"Jul", "8":"Aug", "9":"Sept", "10":"Oct", "11":"Nov", "12":"Dec"};
return map[month];
}
 
function formatTDMonthENL(time) {
var month = formatDate(time, "M");
var map = {"1":"January", "2":"February", "3":"March", "4":"April", "5":"May", "6":"June", "7":"July", "8":"August", "9":"September", "10":"October", "11":"November", "12":"December"};
return map[month];
}
 
function formatTDMonthCN(time) {
return formatCNDateNumber(formatDate(time, "M"));
}
 
function formatTDMonthCNL(time) {
return formatCNDateNumber(formatDate(time, "M")) + "月";
}
 
function formatCNDateNumber(num) {
var map = {"0":"零", "1":"一", "2":"二", "3":"三", "4":"四", "5":"五", "6":"六", "7":"七", "8":"八", "9":"九"};
var result = "";
 
if (num >= 10) {
result += map[parseInt(num / 10)];
result += "十";
 
if (num % 10 > 0) {
result += map[num % 10];
}
} else {
result += map[num % 10];
}
 
return result;
}

5)格式化天

1
2
3
4
5
6
7
function formatTDDay(time) {
return formatDate(time, "d");
}
 
function formatTDDayCN(time) {
return formatCNDateNumber(formatDate(time, "d"));
}

6)格式化周

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
function formatTDWeekEN(time) {
var week = formatDate(time, "EE");
var map = {"周日":"Sun", "周一":"Mon", "周二":"Tue", "周三":"Wed", "周四":"Thu", "周五":"Fri", "周六":"Sat"};
return map[week];
}
 
function formatTDWeekENL(time) {
var week = formatDate(time, "EE");
var map = {"周日":"Sunday", "周一":"Monday", "周二":"Tuesday", "周三":"Wednesday", "周四":"Thursday", "周五":"Friday", "周六":"Saturday"};
return map[week];
}
 
function formatTDWeekCN(time) {
return formatDate(time, "EE");
}
 
function formatTDWeekCNL(time) {
return formatDate(time, "EEE");
}

7)格式化时间

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
function formatTTime(time) {
return formatDate(time, "HH:mm");
}
 
function formatTTHour(time) {
return formatDate(time, "H");
}
 
function formatTTHourCN(time) {
return formatCNDateNumber(formatDate(time, "H"));
}
 
function formatTTMinite(time) {
return formatDate(time, "m");
}
 
function formatTTMiniteCN(time) {
return formatCNDateNumber(formatDate(time, "m"));
}

8)格式化时间段

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
function formatTime(startTime, endTime) {
var timeStr = "";
 
if (endTime != undefined) {
if (formatDate(startTime, "yyyy-MM-dd") == formatDate(endTime, "yyyy-MM-dd")) {
timeStr += formatDate(startTime, "yyyy-MM-dd");
timeStr += " ";
timeStr += formatDate(startTime, "HH:mm");
timeStr += "-";
timeStr += formatDate(endTime, "HH:mm");
} else {
timeStr += formatDate(startTime, "yyyy-MM-dd HH:mm");
timeStr += " 至 ";
timeStr += formatDate(endTime, "yyyy-MM-dd HH:mm");
}
} else {
timeStr += formatDate(startTime, "yyyy-MM-dd HH:mm");
}
 
return timeStr;
}

发表评论

欢迎阅读『JavaScript日期Format格式化|JavaScript、Web设计|Nick Tan-梓潼Blog』