日期差异比较现在时间到日期开始
Date diff compare now time to date started
我有一个简单的计算方法可以计算出储蓄账户的复利。
简单计算
$p = 300; // Starting amount
$i = 0.06; // Interest rate
$c = 12; // compound frequency set to monthly
$n = 2/12; // Current time invested set to 6 months
$r = 200; // Monthly investment is 200
$x = $i / $c;
$y = pow((1 + $x), ($n * $c));
if($p!=0)
{
$vf = $p * $y + ($r * ($y - 1) / $x);
}
else
{
$vf = 1 + $y + ($r * ($y - 1) / $x);
}
echo $vf;
问题是我需要一个变量来确定帐户的年龄,所以我创建了日期差异代码来比较现在的时间和开设帐户的日期。
日期差异代码
$join_date = $row->start_date; // 8th jan 2015
$date1 = new DateTime('now'); // 9th march 2016
$date2 = new DateTime($join_date); ?>
$n = (int)$date1->diff($date2)->format("%m"); // 2 months
因此,如果我将此代码用于变量 $n,那么答案应该与原始代码相同,但不是。
未经修改的代码给出答案704.00749999999(正确)
修改后的代码给出5424.53898108(错误)
所以问题是有人知道哪里出了问题吗?
在您自己的脚本中,您设置
$n = 2/12;
但修改后的代码集
$n = (int) $date1->diff($date2)->format("%m"); // == 2
很明显,2/12 !== 2
,所以也许应该是
$n = ((int) $date1->diff($date2)->format("%m")) / 12;
我有一个简单的计算方法可以计算出储蓄账户的复利。
简单计算
$p = 300; // Starting amount
$i = 0.06; // Interest rate
$c = 12; // compound frequency set to monthly
$n = 2/12; // Current time invested set to 6 months
$r = 200; // Monthly investment is 200
$x = $i / $c;
$y = pow((1 + $x), ($n * $c));
if($p!=0)
{
$vf = $p * $y + ($r * ($y - 1) / $x);
}
else
{
$vf = 1 + $y + ($r * ($y - 1) / $x);
}
echo $vf;
问题是我需要一个变量来确定帐户的年龄,所以我创建了日期差异代码来比较现在的时间和开设帐户的日期。
日期差异代码
$join_date = $row->start_date; // 8th jan 2015
$date1 = new DateTime('now'); // 9th march 2016
$date2 = new DateTime($join_date); ?>
$n = (int)$date1->diff($date2)->format("%m"); // 2 months
因此,如果我将此代码用于变量 $n,那么答案应该与原始代码相同,但不是。
未经修改的代码给出答案704.00749999999(正确)
修改后的代码给出5424.53898108(错误)
所以问题是有人知道哪里出了问题吗?
在您自己的脚本中,您设置
$n = 2/12;
但修改后的代码集
$n = (int) $date1->diff($date2)->format("%m"); // == 2
很明显,2/12 !== 2
,所以也许应该是
$n = ((int) $date1->diff($date2)->format("%m")) / 12;