值范围我使用的计算今天与之间的天数条目时创建一个PHP变量分离:PHP公式来指定天递增点值,由30
DATEDIFF(NOW(), l.created)
我怎么能写一个PHP公式,其中前30天的这个数值乘以1分,然后是30-60分每个2分,然后60-90每个3分等,直到创建以来的总天数,然后所有的观点总结。
因此,如果只有15天才会产生,那么它会得到15分。但是,如果已经创建了45天,它会得到60分(30 * 1加15 * 2)?
值范围我使用的计算今天与之间的天数条目时创建一个PHP变量分离:PHP公式来指定天递增点值,由30
DATEDIFF(NOW(), l.created)
我怎么能写一个PHP公式,其中前30天的这个数值乘以1分,然后是30-60分每个2分,然后60-90每个3分等,直到创建以来的总天数,然后所有的观点总结。
因此,如果只有15天才会产生,那么它会得到15分。但是,如果已经创建了45天,它会得到60分(30 * 1加15 * 2)?
算法:
$d = <number of days>;
$m = intval($d/30); // completed months
$r = intval($d % 30); // remaining days beyond that
$score = ($m * ($m + 1)/2) * 30 + ($m + 1) * $r;
// ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^
// accumulated levels final lvl.
示例:对于$d = 45
,我们有$m = 1
和$r = 15
,得到30 + 2*15 = 60
。
下面是在SQL中一个独立的配方,但你必须自己一个子查询或把它挂到你的功能的加入或东西:
SELECT TRUNCATE((TRUNCATE(d/30, 0) * (TRUNCATE(d/30, 0) + 1)/2) * 30 + (TRUNCATE(d/30, 0) + 1) * (d % 30), 0) AS score
FROM (SELECT 45 AS d) AS t;
<?
$day_num = 90;
$points = 0;
for($i=1;i<=$day_num;$i++)
{
$points += ceil($i/30);
}
echo $points;
?>
for ($i = 0; $i < $number; $i++) $points += ceil($i/30);
算术,约翰。看到这个问题令人沮丧。 –