-
Notifications
You must be signed in to change notification settings - Fork 7
/
ab_time.js
95 lines (86 loc) · 2.39 KB
/
ab_time.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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
/*======================================================================
* 时间相关
*======================================================================*/
/*============================================================
* 计时器相关
*============================================================*/
/**
* 开启倒计时
*
* @param initialval 初始值
* @param interval 间隔时间
* @param callback 倒计时回调函数
*/
function startCountdown(initialval, interval = 1000, callback) {
if (initialval <= 0) {
return;
}
let _restval = initialval;
let _timerId = setInterval(function() {
_restval--;
if (callback != undefined && callback != null && typeof callback == 'function') {
callback(_restval);
}
if (_restval <= 0) {
stopInterval(_timerId);
}
}, interval);
}
/**
* 清除计时器
*
* @param intervalId 计时器Id
*/
function stopInterval(intervalId) {
if (intervalId != undefined && intervalId != null) {
clearInterval(intervalId);
}
}
/*============================================================
* 时间转换相关
*============================================================*/
/**
* 将时间字符串转换为时间戳
*
* timeStr 时间字符串
*/
function str2Stamp(timeStr) {
if (timeStr == undefined || timeStr == null || timeStr == '') {
return 0;
}
return Date.parse(new Date(timeStr));
}
/**
* 将时间戳转换为时间字符串
*
* timeStamp 时间戳
* format 返回的字符串格式
*/
function stamp2Str(timeStamp, format = 'Y-M-D h:m:s') {
let _formateArr = ['Y', 'M', 'D', 'h', 'm', 's'];
let _returnArr = [];
let _date = new Date(timeStamp);
_returnArr.push(_date.getFullYear());
_returnArr.push(_formatNumber(_date.getMonth() + 1));
_returnArr.push(_formatNumber(_date.getDate()));
_returnArr.push(_formatNumber(_date.getHours()));
_returnArr.push(_formatNumber(_date.getMinutes()));
_returnArr.push(_formatNumber(_date.getSeconds()));
for (let i in _returnArr) {
format = format.replace(_formateArr[i], _returnArr[i]);
}
return format;
}
/**
* 如果时间值是 1 位数,则在前面加上 0,例如:秒的值为 6,则处理后返回 06
*/
function _formatNumber(n) {
n = n.toString()
return n[1] ? n : '0' + n
}
module.exports = {
startCountdown: startCountdown,
stopInterval: stopInterval,
str2Stamp: str2Stamp,
stamp2Str: stamp2Str
}