Skip to content

Instantly share code, notes, and snippets.

@gooqiao
Last active April 26, 2020 07:02
Show Gist options
  • Save gooqiao/0c5a97bb113f43be0801c88e5f90fda0 to your computer and use it in GitHub Desktop.
Save gooqiao/0c5a97bb113f43be0801c88e5f90fda0 to your computer and use it in GitHub Desktop.
// 对Date的扩展,将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
// 例子:
// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
// (new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18
/*
* 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
* 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
* @param string 例子:yyyy-MM-dd hh:mm:ss.S ==> 2006-07-02 08:09:04.423
* @return string 2006-07-02 08:09:04.423
*/
Date.prototype.Format = function (fm)
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"D+": this.getDate(), //日
"h+": this.getHours(), //小时
"H+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt) || /(Y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.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;
}
/*
* 如果失败,自动重新请求。
* 最多重复三次。
* @param function 要执行http请求的函数
* @return Promise 与axios一致。
*/
async function autoRetry(fn) {
var i = 0
while (i < 3) {
try {
const result = await fn()
return result
} catch (error) {
if (i === 2) {
return Promise.reject(error)
}
}
i++
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment