我试图比较日期以确定他们之间有多少时间,我知道怎么做,date_diff(),但我想比较日期之间的时间以及是否大于7天做某事,如果不做其他事情。我觉得这听起来很简单,我知道可能有相当简单的解决方案,但我不是日期和比较的粉丝。这是我所得到的片段,因为它只是一个switch语句的例子,所以其余部分基本相同。
$array = array();
$today = date("Y-m-d"); // get today's date
foreach($arrayOfObjs as $obj){
if ($obj->get("renewalDate") >= $today){
array_push($array, $obj->get("renewalDate"));
}else{
switch($obj->get("recurrencePeriod")){
case 1:
/*
* All cases follow same structure
* Build the date in format Y-m-d from renewalDate out of the obj.
* Loop through the date while it's less than today.
* After date is greater than today return date add to array
*/
$date = DateTime::createFromFormat("Y-m-d", $obj->get('renewalDate'));
while($date <= $today){
$date->add(new DateInterval('P7D'));
}
$diff = date_diff($today, $date);
if($diff->format('%a') <= 7){
$obj->renewalDate($date);
array_push($array, $obj);
}
break;
基本上,我的数据库存储日期和那些日期可以传递,但它可能是一个重复发生的事件。为了计算下次该事件发生的时间,我检查数据库中的数据是否在今天的日期之前,如果是,那么我继续添加增量(在这种情况下为每周重复发生的事件7)并再次比较日期。在递增的日期过去之后,我想知道它是否在7天内,如果是,则将其添加到数组中以便返回。我知道...因为我正在添加7并且它在7天内第一次重复发生的事件将始终在7天内,但不是每月事件或任何更大的情况。
所有案件都被打破,所以为了简单起见我只包括了这个案例。我可以让date_Diff返回7或12或类似的数字,但我怎样才能检查这个数字是否在我想要的7天内?
谢谢,如果需要,我会提供更多信息以澄清任何误解。
答案 0 :(得分:0)
我不完全确定你要做什么,但是如果你只是向前和向后投射日期并且想要知道它们是否是7天或更长时间,那么如何:
git fetch
只需确保使用小于或小于等于的比较器等来处理所需的边界条件。