【发布时间】:2016-03-11 23:25:43
【问题描述】:
所以,长话短说,我有一个日期对象数组($occupied)。
我想将这些日期与 $now=dateTime() 进行比较,以便在 $now 之前发生的任何 $occupied[$i] em> 将被删除。我尝试了一些未设置的解决方案,另一个使用(全新的)array_push()。 它都没有奏效,所以我想我除了明显之外还缺少一些逻辑.. 欢迎任何方法:) 这是代码中有趣的部分:
$occupied=["2016-02-19", "2016-02-20", "2016-02-21", "2016-02-18", "2016-02-19", "2016-02-20", "2016-02-21", "2016-03-30", "2016-03-25", "2016-03-26"].
$now = new DateTime();
我的想法包括:
$now= new dateTime();
for($i=0;$i<count($occupied);$i++){
$occupied[$i]=new dateTime($occupied[$i]);
$diff[$i] = $now->diff($occupied[$i]);
echo $diff[$i]->format('%r%a');
if(get_object_vars($diff[$i])["invert"]==1){
unset($occupied[$i]);
}
}
和主题的变化.. 道歉,如果它是微不足道的,我的背景是非常基本的......我试图通过阅读 PHP 手册和这里的一些答案来避免发布,其中包括“从数组中删除值//按键删除元素”,但我无法弄清楚..
提前致谢!
【问题讨论】:
-
究竟包含什么
$occupied?您说它包含 "date objects" 但代码显示字符串并将它们用作字符串。通过“日期对象”,我了解DateTime类的实例。 -
是的,我的错... $occupied 原本是字符串,然后通过" new dateTime($objects[$i]);... 转换为对象
标签: php arrays datetime object