定时器 Timers

笔记

  • 时间戳

    1
    2
    //当前时间戳
    log(Math.round(new Date() / 1000));

  • 当前星期

    1
    2
    3
    4
    5
    var d = new Date();
    var now = Math.round(d / 1000);

    //当前星期
    log(d.getDay());

  • 当前时间

    1
    2
    3
    4
    5
    var d = new Date();
    var now = Math.round(d / 1000);

    //当前时间
    log(d.getHours(), d.getMinutes());

  • 测试

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    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秒后执行


实例

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
//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秒) 后执行


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
//定时循环
//当前时间
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秒执行一次


最后