如何在PHP节日签名图片脚本中添加整月生效的匹配规则
整月节日配置修改方案
完全沿用原有代码的年积日判断逻辑,不需要改动已有功能,仅需新增3处代码即可实现黑人历史月(每年2月全月)的匹配:
- 第一步:在现有所有节日/节点的年积日变量定义区域(即定义
$valentines、$spring、$easter等变量的代码块),新增两行代码,自动计算每年2月第一天、最后一天的年积日,自动适配平年闰年,无需手动维护日期:
// 黑人历史月(每年2月)起止日期 $black_history_month_start = date('z', mktime(0,0,0,2,1,$current_year)); $black_history_month_end = date('z', mktime(0,0,0,3,0,$current_year));
- 第二步:在
switch ($jd)判断块中新增匹配规则,可根据需求调整匹配优先级:- 如果你希望2月全月优先展示黑人历史月图片,覆盖2月内其他节日(比如情人节),就把下面的case放在switch判断的最顶部
- 如果你希望2月内的特定节日(比如情人节)仍优先展示对应节日图,其余2月日期展示黑人历史月图,就把下面的case放在情人节判断之后、季节默认规则之前
case $jd >= $black_history_month_start && $jd <= $black_history_month_end: $sp = "blackhistorymonth"; break;
- 第三步:将准备好的黑人历史月对应图片按照现有命名规则上传到图片存储目录,文件名应为
Web-Logo-stamp-blackhistorymonth.jpg。
注:原有代码中1月1日的年积日0修正为1的逻辑不会影响2月日期的范围判断,新增代码和原有节日判断逻辑完全一致,不会破坏已有的节日、季节匹配规则。
内容的提问来源于stack exchange,提问作者Lena Shore
相关产品推荐
相关产品推荐

