针对 DateTime 对象的 Foreach 循环
Foreach Loop against a DateTime Object
我正在编写一个小程序,如果它像图书馆一样过期,它基本上会向图书收费。
所以我的想法是,书迟到的每一天都会增加费用
即:如果这本书逾期 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
}
我仍在学习很多东西,所以任何提示、建议都会很棒,谢谢!
只需计算图书过期天数并将其乘以 2。您已经拥有所需的一切,因为 timeOverdue
包含图书过期天数。
if ($returnedDate > $dueDate) {
$timeOverdue = date_diff( $returnedDate, $dueDate);
$amountToPay = $timeOverdue->days * 2;
}
我正在编写一个小程序,如果它像图书馆一样过期,它基本上会向图书收费。
所以我的想法是,书迟到的每一天都会增加费用
即:如果这本书逾期 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
}
我仍在学习很多东西,所以任何提示、建议都会很棒,谢谢!
只需计算图书过期天数并将其乘以 2。您已经拥有所需的一切,因为 timeOverdue
包含图书过期天数。
if ($returnedDate > $dueDate) {
$timeOverdue = date_diff( $returnedDate, $dueDate);
$amountToPay = $timeOverdue->days * 2;
}