首页| 版块| 我的| 发帖| 消息
主题:关于原创达人勋章的研究修改及勋章自动回收任务
zhangjingyu 
修改工作是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日。百思不得其解。
zhangjingyu回帖于2021-09-18 19:09[查看电脑版]
下一页 (1/2)
下一楼»:使用上面的date()函数显示9月12日,但使用get_date()函数却能正确显示为9月13日。而上面明明使用 ..
«上一楼:主帖最前面提到的“勋章回收通知”这个主题记录了“研究”的过程,结果大致如上。41楼说:
& ..

查看全部回帖(49)
«返回主帖