原文:https://blog.c12th.cn/archives/36.html
定时器 Timers
笔记
- 时间戳
//当前时间戳
log(Math.round(new Date() / 1000));
- 当前星期
var d = new Date();
var now = Math.round(d / 1000);
//当前星期
log(d.getDay());
- 当前时间
var d = new Date();
var now = Math.round(d / 1000);
//当前时间
log(d.getHours(), d.getMinutes());
- 测试
var d = new Date();
var now = Math.round(d / 1000);
log(d.getHours());
//设置时间
d.setHours(24);
log(d.getHours());
//设置后时间
var timing = Math.round(d / 1000);
var timeOut = timing - now;
setTimeout(function () {
toast("运行中!");
}, timeOut * 1000);
log(timeOut);
分别对应:
1. 当前时间为23时
2. 设置时间为24(0)时
3. 设定程序在3600秒后执行
实例
//main
//当前时间
var d = new Date();
var now = Math.round(d / 1000);
var now_H = d.getHours();
var now_M = d.getMinutes();
var now_S = d.getSeconds();
// log(now_H);
// log(now_M);
//设置时间
var h = 1; //增加1小时
var new_H = now_H + h;
d.setHours(new_H);
// log(d.getHours());
var H = d.getHours();
var m = 10; //增加10分钟
var new_M = now_M + m;
d.setMinutes(new_M);
// log(d.getMinutes());
var M = d.getMinutes();
var s = 0;
var new_S = now_S + s;
d.setSeconds(new_S);
var S = d.getSeconds();
//设置后时间
var timing = Math.round(d / 1000);
var timeOut = timing - now;
setTimeout(function () {
toast("运行中!");
}, timeOut * 1000);
log(timeOut);
toast("预计 " + H + "时" + M + "分" + S + "秒 运行");
这里设置时间为1小时10分 (4200秒) 后执行
//定时循环
//当前时间
var d = new Date();
var now = Math.round(d / 1000);
var now_H = d.getHours();
var now_M = d.getMinutes();
var now_S = d.getSeconds();
//设置时间
var h = 0;
var new_H = now_H + h;
d.setHours(new_H);
var H = d.getHours();
var m = 0;
var new_M = now_M + m;
d.setMinutes(new_M);
var M = d.getMinutes();
var s = 5; //增加5秒
var new_S = now_S + s;
d.setSeconds(new_S);
var S = d.getSeconds();
//设置后时间
var timing = Math.round(d / 1000);
var timeOut = timing - now;
var i = 1;
var id = setInterval(function () {
i++;
log("运行第 " + i + " 次");
toast("运行中!");
}, timeOut * 1000);
log("运行第 1 次");
toast("运行中!");
// 1分钟后取消循环
// setTimeout(function(){
// clearInterval(id);
// }, 60 * 1000);
这里设置时间为每5秒执行一次