每天在php

时间:2016-03-18 18:47:20

标签: php

我想每天添加700到7700但我想让它开始在某一天添加​​金额,例如

我希望它能够开始 2016年3月12日所以这一天的金额是7700 第二天应该是8400比第二天9100等等。我无法提出解决方案。这就是我现在所拥有的

<?php
 $now = time();
 $your_date = strtotime("2016-03-12"); //Starting date
 $datediff = floor(($now - $your_date)/(60*60*24)*700);

 echo $datediff;
 ?>

我找到了一种方法,我添加了这一行

     $datediff = ($datediff * 700) + 7700;

2 个答案:

答案 0 :(得分:1)

<?php
    $startDate = "2016-03-12"; //Y-m-d
    $startAmount = 7700;
    $incrAmount = 700;
    $date1 = new DateTime($startDate);
    $date2 = new DateTime("today");
    $diff = $date2->diff($date1);
    $todaysAmount = $startAmount+($incrAmount*($diff->d+1));   //+1 for start day >> 7700+(700*7)
    echo $todaysAmount; //prints 12600
?>

评论中提到的逻辑。

答案 1 :(得分:1)

计算自定义期间值的函数:

<?php

$startDay = '2016-03-16';
$startValue = 7000;
$dayValue = 700;

function periodValue($startDay, $startValue, $dayValue) {
    return function($endDay) use ($startDay, $startValue, $dayValue) {
        return (
            date_diff(
                date_create($endDay),
                date_create($startDay)
            )->days) * $dayValue + $dayValue + $startValue;
    };
};


$periodValue = periodValue($startDay, $startValue, $dayValue);

$v0 = $periodValue($startDay); // 7700
$v1 = $periodValue('2016-03-17'); // 8400
$v2 = $periodValue('2016-03-18'); // 9100

您可以轻松使用DateInterval类的invert属性来相对于两个方向的开始日进行这些计算。