如何使用Power Automate实现Microsoft List到期前3个月向联系人发送提醒
Power Automate 日期比较解决方案
核心问题原因
比较失败通常是两类格式不一致导致的:
- 从文本类型
Expiration Date计算出的减3个月后的值,和系统今日日期的时区、时间部分、显示格式不统一 - 未去除日期中的时间戳,即使日期匹配,时间部分不同也会判定不相等
具体操作步骤
- 先转换
Expiration Date为可识别的日期格式
因为你的Expiration Date是MM/DD/YYYY格式的文本类型,在做减法前需要先解析为标准日期,给Subtract from time操作的输入用如下表达式:parseDateTime(你获取到的Expiration Date动态值,'en-US','MM/dd/yyyy') - 把
Subtract from time的输出转换为纯日期格式文本
用formatDateTime函数去除时间部分,统一格式:formatDateTime(你的Subtract from time步骤输出, 'MM/dd/yyyy') - 把今日日期也转换为相同格式的纯文本
用如下表达式获取今日的标准格式文本:formatDateTime(utcNow(), 'MM/dd/yyyy') - 条件判断直接对比两个文本值是否相等即可
简化方案(可省略Subtract from time步骤)
你可以直接在条件判断步骤填入两个表达式对比,逻辑和需求完全一致,还能减少操作步骤:
- 左侧输入表达式:
formatDateTime(parseDateTime(items('你的遍历列表步骤名称')?['Expiration Date'],'en-US','MM/dd/yyyy'), 'yyyy-MM-dd') - 右侧输入表达式:
formatDateTime(addMonths(utcNow(),3), 'yyyy-MM-dd') - 直接判断二者相等,等价于「到期日刚好是今天加3个月」,和你原来的
Expiration Date - 3个月 = 今日逻辑完全一致
内容的提问来源于stack exchange,提问作者Bijan
相关产品推荐
相关产品推荐

