UBAINS

 找回密码
 立即注册
搜索
热搜: UBAINS
查看: 1999|回复: 0

[学习笔记] 时间Date和超时逾期设定

[复制链接]

10

主题

11

帖子

447

积分

版主

Rank: 7Rank: 7Rank: 7

积分
447
QQ
发表于 2020-10-28 18:25:57 | 显示全部楼层 |阅读模式
本帖最后由 pidtfork 于 2020-10-28 18:27 编辑

时间 Date()和超时逾期设定

Date对象是JavaScript的内置对象,用于处理日期和时间。

通过new 方法构造,返回一个Date对象,实例化时未传入参数时,自动把当前日期和时间保存为其初始值。也可以指定初始值,参数可以是1970 年 1 月 1 日至今的毫秒数,也可以是如下固定格式的字符串。


  1. var t = new Date("2020/4/2113:58:00");
  2. vartm = new Date("2020/4/2113:58:00").getTime();
复制代码




逾期设定

项目中很多时候需要一个时间节点的通知,如项目实施交付3个月后可以Pad弹窗提醒客户注意机房卫生啊,定期检查设备运行和功能状态,这样可以提供一些人性化的服务。

可以通过如下方法设定一个时间,定时的获取当前时间去比较设定的时间,超过时间就触发某些事件。

时间转成毫秒数是为了比较方便

  1. var overdueTime = new Date("2020/4/21 13:58:00").getTime();  //逾期时间
  2. var now = new Date().getTime(); //当前时间
复制代码



实例

逾期构造函数,可以实例化多个逾期事件。

可以设置检查逾期的时间间隔,默认1秒,也可以设置检查多少次后才触发一个事件回调;避免逾期后频繁触发回调事件。



  1. //"2020/4/2113:58:00"
  2. function overdueEvent(dates,callback) {
  3.     this.stopTime = new Date(dates).getTime();
  4.     this.callback =callback;
  5.     this.state = false;
  6.     this.init = function(){
  7.         varlastTime = getSystemInt("time" + this.stopTime,-1);
  8.         varnowTime =   new Date().getTime();
  9.         if(lastTime > nowTime) {
  10.            this.state = true;
  11.         }else{
  12.            setSystemInt("time" + this.stopTime,nowTime)
  13.         }
  14.     }
  15.     this.intervalTime = 1;  //间隔 n 秒检查时间是否逾期
  16.     this.intervalCall = 2;  //m此检查后触发回调事件 每次触发回调事件为 n*m
  17.     this.intervalCount = 0; //计数
  18.     varself = this;
  19.     delay(this.intervalTime,function(){
  20.         setText("A1",new Date().getTime());
  21.         if(new Date().getTime() > self.stopTime){
  22.            self.state = true;
  23.         }
  24.         if(self.state){
  25.            self.intervalCount++;
  26.            if (self.intervalCount >= self.intervalCall) {
  27.                self.intervalCount = 0;
  28.                self.callback();
  29.            }
  30.         }
  31.         delay(self.intervalTime,arguments.callee);
  32.     });
  33. }
  34. // 设定的时间,固定为此格式  2.回调,逾期触发此回调
  35. varstops = new overdueEvent("2020/4/2113:58:00",function(){
  36.     setText("B1","overdueEvent");
  37.     setPageShow("弹窗");
  38.     setSystemReboot(); //重启设备
  39. });

  40. stops.init(); //设备上电运行 检查上次开机时间和本次开机时间
  41. //主要作用是防止设备长时间断电导致时间错误,或人为将事件往前设置

复制代码


高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

Archiver|手机版|小黑屋|BBS.UBAINSYUN.COM

GMT+8, 2024-4-27 09:42 , Processed in 0.034133 second(s), 19 queries .

Powered by UBAINS! X3.4

© 2001-2017 UBAINS Inc.

快速回复 返回顶部 返回列表