微信小程序和uni-app的时间相关函数
微信小程序
1.补位添零函数
const formatNumber = n => {
// 小于10的加0
n = n.toString()
return n[1] ? n : '0' + n
}
2.十五分钟倒计时
将startTime(开始时间),endTime(结束时间)放在对象里,remainTime ( 时间差 )为设置定时函数相当于递归函数执行动态的时间数字变化。
// 倒计时
function countDown(that) {
var newTime = new Date().getTime();
var endTime = that.data.endTime;
var remainTime = endTime - newTime;
var obj = null;
var t = '';
if (remainTime > 0) {
var time = remainTime / 1000;
var min = parseInt(time % (60 * 60 * 24) % 3600 / 60);
var sec = parseInt(time % (60 * 60 * 24) % 3600 % 60);
obj = {
min: formatNumber(min),
sec: formatNumber(sec)
}
}
t = setTimeout(function() {
that.setData({
countDownTxt: obj
});
countDown(that)
}, 0)
if (obj) {
if (obj.min == 0 && obj.sec == 0) {
wx.switchTab({
url: '/pages/index/index',
})
wx.setStorageSync('ifLoad', true);
}
}
if (remainTime <= 0) {
clearTimeout(t);
}
}
3.正计时函数
获取当前时间perTime,将其与传入对象中的开始时间startTime进行计算
//正计时函数
function recountDown(that) {
let perTime = new Date().getTime();//获取当前时间戳
let startTime = that.data.startTime;
let mainTime = perTime - startTime;
let obj = null;
let t = '';
if (mainTime > 0) {
let time = mainTime / 1000;
let min = parseInt(time % (60 * 60 * 24) % 3600 / 60);
let hour = parseInt(time % (60 * 60 * 24) / 3600);
let sec = parseInt(time % (60 * 60 * 24) % 3600 % 60);
obj = {
hour: hour,
min: formatNumber(min),
sec: formatNumber(sec)
}
}
t = setTimeout(function