修改工作是16号晚上开始的。之前想过修改的方法,觉得里面需要用到查询,也想过大致该怎么写查询语句。结果看到文件内容,觉得应该还好,不会太难。
apps/medal/action/behavior.php
} elseif ($medalInfo['associate'] == 'continue_thread_post') {
$attention = '
注意:1天不登录,现有连续登录天数会减1
';$notice = ($needNum > 0) ? '你还需连续发主题'.$needNum.'天' : '再发1主题帖即可获得此勋章';
$notice = $notice . '(现有天数:'.$num.')';
$nowhave = '(现有连续主题天数:'.$num.')';
} elseif后面的“$nowhave = '(现有连续主题天数:'.$num.')';”这一行,就是图片中括号以及括号中的内容。
“ $num = ($behavior) ? $behavior['num'] : 0;
$needNum = $medalInfo['confine'] - $num;”(引用内容)该文件中上面的代码稍微向上一点儿有上面这两行,$behavior['num']就是连续天数,那最后发主题时间就是$behavior['lastday'],所以我说不用自己写查询了。
再往上有类似这样的代码:
“$otherHtml = '
获得时间:' . date('Y-m-d', $awardMedal['timestamp']) . '
有效期:' . $medalInfo['confine'] . ' 天'. '到期时间:' . date('Y-m-d', $awardMedal['deadline']) . '
';”(引用内容)也就是可以直接格式化时间。于是,尝试添加代码。“ //2021.9.16
$pastday = ($tdtime - $behavior['lastday'])/86400;
$shengyu = $num - $pastday +1;//截止到昨天的剩余天数”(引用内容)$nowhave行改为:
“$nowhave = ($pastday > 0)? '(上次发主题时间:'.date('Y-m-d',$behavior['lastday']).',剩余连续天数:'.$shengyu.')' : '(今天已发主题,连续主题天数:'.$num.')';”(引用内容)代码没写错,因为勋章中心原创达人勋章那里显示基本正常。之所以说基本正常,是因为发主题时间有点儿对不上:明明是9月13日,但在勋章中心却显示是9月12日。把格式化时间的代码单独写出来,“$lasttime = date('Y-m-d',$behavior['lastday']);”结果还是显示9月12日。百思不得其解。