-
Notifications
You must be signed in to change notification settings - Fork 47
/
formatTime.js
34 lines (30 loc) · 1004 Bytes
/
formatTime.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
/**
* @desc 格式化时间戳为年月日时分秒
* @param {Number,Date} date
* @param {String} fmt
* @return {String}
*/
function isDate(o) {
return Object.prototype.toString.call(o) === '[object Date]';
}
var formatTime = function formatTime(date) {
var fmt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'yyyy-MM-dd hh:mm:ss';
if (isDate(date) === false) {
date = new Date(+date);
}
var o = {
'M+': date.getMonth() + 1,
'd+': date.getDate(),
'h+': date.getHours(),
'm+': date.getMinutes(),
's+': date.getSeconds(),
'q+': Math.floor((date.getMonth() + 3) / 3),
'S': date.getMilliseconds()
};
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
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;
};
module.exports = formatTime;