0

我正在编写一个小程序,如果它像图书馆一样过期,基本上会增加预订费用。

所以我的想法是,每天迟到这本书就会增加费用

IE:如果该书逾期 5 天,则费用为每天 10 英镑 = 2 英镑。

到目前为止,这是我的代码,说实话,不确定它是否是“foreach”,但我想是的

<?php
class Book
{

public $timeOverdue;

public function isBookOverdue()
{
    $returnedDate = new \DateTime('05/19/2015');
    $dueDate = new DateTime('05/08/2015');

    var_dump('returndDate', $returnedDate);
    var_dump('dueDate', $dueDate);

    if ($returnedDate > $dueDate) {

        echo 'Book is overdue.' . PHP_EOL;
        // $isBookOverdueStatus = true;
        $timeOverdue = date_diff( $returnedDate, $dueDate);
        echo $timeOverdue->format("%m month, %d days (total: %a days)") . PHP_EOL;
        var_dump($timeOverdue);

    } else {
        echo "Book is not overdue" .PHP_EOL. "Book has been returned" . PHP_EOL;
        die();
    }
}
}

$returnOfABook = new Book();
$returnOfABook->isBookOverdue();
$returnOfABook->addOverdueFee();

那么这就是我认为的可能吗?sudo 代码比什么都多:

// public function addOverdueFee($timeOverdue)
// {
//   foreach ($timeOverdue as "day" => 1) {
//       // add fee
//   }
// }

仅供参考,这里是我希望循环运行的日期对象:

object(DateInterval)#4 (15) {
["y"]=>
int(0)
["m"]=>
int(0)
["d"]=>
int(11)
["h"]=>
int(0)
["i"]=>
int(0)
["s"]=>
int(0)
["weekday"]=>
int(0)
["weekday_behavior"]=>
int(0)
["first_last_day_of"]=>
int(0)
["invert"]=>
int(1)
["days"]=>
int(11)
["special_type"]=>
int(0)
["special_amount"]=>
int(0)
["have_weekday_relative"]=>
int(0)
["have_special_relative"]=>
int(0)
}

所以我认为kkk会是这样的吗?

foreach($array as $key => $value)
{
  //do stuff
}

我还在学习很多,所以任何提示,建议都会很棒,谢谢!

4

1 回答 1

3

只需将图书逾期天数乘以 2。您已经拥有所需的一切,因为timeOverdue其中包含图书逾期的天数。

if ($returnedDate > $dueDate) {
    $timeOverdue = date_diff( $returnedDate, $dueDate);
    $amountToPay = $timeOverdue->days * 2;
}
于 2015-08-10T11:35:23.950 回答