找回密码
 立即注册
查看: 2329|回复: 3

[流程系列] 请教下,如何判断当前时间是否在指定的时间区间里

[复制链接]

20

主题

482

回帖

3401

积分

论坛元老

积分
3401
金钱
2899
HASS币
8
发表于 2022-7-30 12:55:36 来自手机 | 显示全部楼层 |阅读模式
在hassos里有两个时间类型的辅助元素,在nr里获取到它们的值分别为文本“23:00:00”和“6:00:00”,想实现功能为:
当前系统时间在23:00:00~6:00:00之间为false,否则为true
这个需求如何编写?
回复

使用道具 举报

14

主题

418

回帖

2770

积分

金牌会员

积分
2770
金钱
2338
HASS币
0
发表于 2022-7-30 21:20:19 来自手机 | 显示全部楼层
装个time range 节点,node-red-contrib-time-range-switch
回复

使用道具 举报

20

主题

482

回帖

3401

积分

论坛元老

积分
3401
金钱
2899
HASS币
8
 楼主| 发表于 2022-7-30 22:00:07 | 显示全部楼层
ylilike 发表于 2022-7-30 21:20
装个time range 节点,node-red-contrib-time-range-switch

谢谢ylilike指点,已经测试成功了
在使用time range之前,没有什么好思路,用了个笨办法解决的:
function date1(a){
    var date = new Date();
    let day=date.getDate();
    let month = date.getMonth() + 1;
    return `${date.getFullYear()}-${month}-${day} ${a}`
}

dc=new Date();
ds=new Date(date1(flow.get('timestart')));
de=new Date(date1(flow.get('timeend')));

msg.payload=dc > ds && dc < de
return msg;


在使用time range时,开始不了解如何把获取的辅助元素中的时间值传递到节点里,经过一番折腾,看到帮助信息里有配置信息msg.__config可以传递变量,完美解决了我的需求。
回复

使用道具 举报

14

主题

418

回帖

2770

积分

金牌会员

积分
2770
金钱
2338
HASS币
0
发表于 2022-7-31 11:35:35 | 显示全部楼层
cjnt007 发表于 2022-7-30 22:00
谢谢ylilike指点,已经测试成功了
在使用time range之前,没有什么好思路,用了个笨办法解决的 ...

我也跟着学了一招,呵呵
若然,一切若然~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2025-5-2 14:35 , Processed in 0.119041 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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