You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Apps Script日期季节判断问题:日期范围判断失效

问题分析与解决方案

你的代码逻辑错误出在字符串比较的逻辑关系和日期区间的划分上:

  1. 字符串比较问题:将日期转为MM/dd格式的字符串后,比较是按字符顺序执行的。比如'01/13'(1月13日)和'12/21'(12月21日)对比时,'0'的ASCII码小于'1',所以'01/13' < '12/21',这导致你原代码中“大于'12/21'且小于'3/20'”的条件永远无法成立——没有日期能同时满足这两个要求。

  2. 冬季区间划分:冬季是跨年份的,需拆为两个独立区间:

    • 当年12月21日至12月31日
    • 次年1月1日至3月20日

修正后的代码

var myDate = myForm.getRange("C4").getValue();
var formattedDate = Utilities.formatDate(myDate, "GMT", 'MM/dd');

// 冬季判断:12/21 - 12/31 或者 01/01 - 03/20
if ((formattedDate >= '12/21') || (formattedDate <= '03/20')) {
  ui.alert("Winter");
}

额外优化建议

  • 避免重复调用Utilities.formatDate,将格式化后的日期存入变量复用,提升代码效率。
  • 如果你的实际时区不是GMT,记得把"GMT"替换为对应时区(比如"Asia/Shanghai"),避免日期转换出现偏差。

内容的提问来源于stack exchange,提问作者Mike M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 18:55:42