1. »ù´¡Ê±¼ä»ñÈ¡·½·¨
/**
* »ñÈ¡µ±Ç°Ê±¼ä´Á
*/
µ±Ç°Ê±¼ä´Á: function() {
return Date.now();
}
ÕâÊÇ×î»ù´¡µÄ·½·¨£¬·µ»Øµ±Ç°Ê±¼äµÄºÁÃ뼶ʱ¼ä´Á¡£³£ÓÃÓڼǼʱ¼äµã»ò¼ÆËãʱ¼ä²î¡£
/**
* »ñÈ¡µ±Ç°Ê±¼ä
*/
µ±Ç°Ê±¼ä: function() {
return new Date();
}
·µ»Øµ±Ç°µÄDate¶ÔÏ󣬿ÉÒÔÓÃÓÚºóÐøµÄʱ¼ä´¦Àí¡£
2. ʱ¼äµÈ´ýºÍÐÝÃß·½·¨
/**
* ÐÝÃßÖ¸¶¨µÄºÁÃëÊý£¨Í¬²½·½Ê½£©
*/
ÐÝÃß: function(ms) {
try {
// ²ÎÊýÑéÖ¤
if (typeof ms !== 'number' || ms < 0) {
console.error("[ʱ¼ä.ÐÝÃß] ´íÎ󣺲ÎÊý±ØÐëÊǷǸºÊý");
return;
}
var start = new Date().getTime();
while (new Date().getTime() < start + ms) {
// ¿ÕÑ»·µÈ´ý
}
} catch (error) {
console.error("[ʱ¼ä.ÐÝÃß] ´íÎó£º" + error);
}
}
ÕâÊÇÒ»¸öͬ²½µÄÐÝÃß·½·¨£¬»á×èÈûÖ´ÐÐÖ¸¶¨µÄºÁÃëÊý¡£×¢Ò⣺Õâ»á×èÈûÖ÷Ï̡߳£
/**
* µÈ´ýÖ¸¶¨Ê±¼ä£¨Òì²½·½Ê½£©
*/
µÈ´ýÖ¸¶¨Ê±¼ä: function(ms) {
try {
if (typeof ms !== 'number' || ms < 0) {
console.error("[ʱ¼ä.µÈ´ýÖ¸¶¨Ê±¼ä] ´íÎó£ºms±ØÐëÊǷǸºÊý");
return Promise.reject("ms±ØÐëÊǷǸºÊý");
}
return new Promise(function(resolve) {
setTimeout(resolve, ms);
});
} catch (error) {
console.error("[ʱ¼ä.µÈ´ýÖ¸¶¨Ê±¼ä] ´íÎó£º" + error);
return Promise.reject(error);
}
}
ÕâÊÇÒì²½°æ±¾µÄµÈ´ý£¬·µ»ØPromise£¬²»»á×èÈûÖ÷Ï̡߳£ÍƼöʹÓÃÕâ¸ö·½·¨¶ø²»ÊÇÐÝÃß
¡£
3. ʱ¼ä¸ñʽ»¯ºÍת»»
/**
* ¸ñʽ»¯Ê±¼äΪָ¶¨¸ñʽ
*/
¸ñʽ»¯: function(date, format) {
try {
format = format || "YYYY-MM-DD HH:mm:ss";
// ... ²ÎÊýÑéÖ¤ ...
var formatMap = {
YYYY: dateObj.getFullYear(),
MM: String(dateObj.getMonth() + 1).padStart(2, '0'),
DD: String(dateObj.getDate()).padStart(2, '0'),
HH: String(dateObj.getHours()).padStart(2, '0'),
mm: String(dateObj.getMinutes()).padStart(2, '0'),
ss: String(dateObj.getSeconds()).padStart(2, '0'),
SSS: String(dateObj.getMilliseconds()).padStart(3, '0')
};
return format.replace(/YYYY|MM|DD|HH|mm|ss|SSS/g, function(match) {
return formatMap[match];
});
} catch (error) {
console.error("[ʱ¼ä.¸ñʽ»¯] ´íÎó£º" + error);
return null;
}
}
Õâ¸ö·½·¨¿ÉÒÔ½«ÈÕÆÚ¸ñʽ»¯ÎªÖ¸¶¨µÄ×Ö·û´®¸ñʽ¡£Ö§³ÖµÄ¸ñʽ±ê¼Ç£º
- YYYY: Äê·Ý
- MM: Ô·ݣ¨01-12£©
- DD: ÈÕÆÚ£¨01-31£©
- HH: Сʱ£¨00-23£©
- mm: ·ÖÖÓ£¨00-59£©
- ss: Ã루00-59£©
- SSS: ºÁÃ루000-999£©
4. ʱ¼ä×é¼þ»ñÈ¡
»ñÈ¡Äê: function(date) {
try {
var dateObj = date ? new Date(date) : new Date();
return dateObj.getFullYear();
} catch (error) {
console.error("[ʱ¼ä.»ñÈ¡Äê] ´íÎó£º" + error);
return null;
}
}
ÀàËƵĻ¹ÓлñÈ¡ÔÂ
¡¢»ñȡʱ
¡¢»ñÈ¡·Ö
¡¢»ñÈ¡Ãë
¡¢»ñÈ¡ºÁÃë
·½·¨£¬ËüÃǶ¼£º
- ½ÓÊÜ¿ÉÑ¡µÄÈÕÆÚ²ÎÊý£¬²»´«ÔòʹÓõ±Ç°Ê±¼ä
- ·µ»Ø¶ÔÓ¦µÄʱ¼ä×é¼þ
- °üº¬´íÎó´¦Àí
5. ¸ß¼¶¹¦ÄÜ
/**
* µ¹¼ÆʱÃë
*/
µ¹¼ÆʱÃë: function(seconds, callback, doneCallback) {
try {
var remainingSeconds = seconds;
// Á¢¼´Ö´ÐÐÒ»´Î»Øµ÷
if (typeof callback === 'function') {
callback(remainingSeconds);
}
var intervalId = setInterval(function() {
remainingSeconds--;
if (typeof callback === 'function') {
callback(remainingSeconds);
}
if (remainingSeconds <= 0) {
clearInterval(intervalId);
if (typeof doneCallback === 'function') {
doneCallback();
}
}
}, 1000);
return intervalId;
} catch (error) {
console.error("[ʱ¼ä.µ¹¼ÆʱÃë] ´íÎó£º" + error);
return null;
}
}
ÕâÊÇÒ»¸öµ¹¼Æʱ¹¦ÄÜ£º
- ÿÃëµ÷ÓÃÒ»´Îcallback
- ´«ÈëÊ£ÓàÃëÊý
- µ¹¼Æʱ½áÊøʱµ÷ÓÃdoneCallback
- ·µ»ØintervalId¹©È¡ÏûʹÓÃ
/**
* µÈ´ýÖ¸¶¨×Ö·û³öÏÖ
*/
µÈ´ýÖ¸¶¨×Ö·û³öÏÖ: function(checkFn, timeout, interval) {
try {
if (typeof checkFn !== 'function') {
console.error("[ʱ¼ä.µÈ´ýÖ¸¶¨×Ö·û³öÏÖ] ´íÎó£ºcheckFn±ØÐëÊǺ¯Êý");
return Promise.reject("checkFn±ØÐëÊǺ¯Êý");
}
timeout = timeout || 5000;
interval = interval || 100;
return new Promise(function(resolve, reject) {
if (checkFn()) {
resolve();
return;
}
var startTime = Date.now();
var intervalId = setInterval(function() {
if (Date.now() - startTime > timeout) {
clearInterval(intervalId);
reject("µÈ´ý³¬Ê±");
return;
}
if (checkFn()) {
clearInterval(intervalId);
resolve();
}
}, interval);
});
} catch (error) {
console.error("[ʱ¼ä.µÈ´ýÖ¸¶¨×Ö·û³öÏÖ] ´íÎó£º" + error);
return Promise.reject(error);
}
}
ÕâÊÇÒ»¸ö¸ß¼¶µÄµÈ´ý¹¦ÄÜ£º
- ½ÓÊÜÒ»¸ö¼ì²éº¯Êý
- ¶¨ÆÚ¼ì²éÌõ¼þÊÇ·ñÂú×ã
- Ö§³Ö³¬Ê±ÉèÖÃ
- ·µ»ØPromise
6. ´íÎó´¦ÀíÌصã
ËùÓз½·¨¶¼²ÉÓÃÁËͳһµÄ´íÎó´¦Àíģʽ£º
- try-catch °ü¹üÖ÷ÒªÂß¼
- ÏêϸµÄ²ÎÊýÑéÖ¤
- ͳһµÄ´íÎóÈÕÖ¾¸ñʽ
- ʧ°Üʱ·µ»Ønull»òreject Promise
7. ʹÓÃʾÀý
// »ù´¡Ó÷¨
var now = ʱ¼ä.µ±Ç°Ê±¼ä();
var formatted = ʱ¼ä.¸ñʽ»¯(now, "YYYYÄêMMÔÂDDÈÕ");
// Òì²½µÈ´ý
ʱ¼ä.µÈ´ýÖ¸¶¨Ê±¼ä(1000).then(function() {
console.log("1ÃëºóÖ´ÐÐ");
});
// µ¹¼Æʱ
ʱ¼ä.µ¹¼ÆʱÃë(5,
function(remain) { console.log(remain + "Ãë"); },
function() { console.log("µ¹¼Æʱ½áÊø"); }
);
// µÈ´ýÌõ¼þ
ʱ¼ä.µÈ´ýÖ¸¶¨×Ö·û³öÏÖ(
function() { return ÆÁÄ»ÎÄ×Ö.indexOf("³É¹¦") >= 0; },
5000
).then(function() {
console.log("ÕÒµ½ÁË");
});
Õâ¸öʱ¼ä¹¤¾ß¿âÉè¼ÆµÃ·Ç³£ÊµÓ㬼ÈÓлù´¡µÄʱ¼ä´¦Àí¹¦ÄÜ£¬Ò²Óи߼¶µÄÒì²½µÈ´ý¹¦ÄÜ£¬´íÎó´¦ÀíÍêÉÆ£¬Ê¹Ó÷½±ã¡£Äú¾õµÃ»¹ÐèÒªÎÒ½âÊÍÄIJ¿·Ö¸üÏêϸÂð£¿