我想每天添加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;
答案 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属性来相对于两个方向的开始日进行这些计算。