我有下面的php函数,它创建一个开始日期和结束日期之间的所有日期的数组:
function dateRange( $first, $last, $step = '+1 day', $format = 'Y-m-d' ) {
$dates = array();
$current = strtotime( $first );
$last = strtotime( $last );
while( $current <= $last ) {
$dates[] = date( $format, $current );
$current = strtotime( $step, $current );
}
return $dates;
}
然后我使用:
if (in_array($this_date,dateRange($start_date, $end_date))) {... do sth ...} else {... do sth else...}
现在,我认为在从数据库中读取日期时,最好在while循环中实现这一点。数据库中有几个日期段,我想在读取行时创建一个包含所有日期段的数组,最后检查是否为in_array($this_array_contains_all_date_ranges_from_db)。
如果我在使用dateRange($start_date,$end_date)
后尝试打印$array,它只返回一个空的"array"。然而,如果我使用上面提到的if,它可以正常工作。此外,我尝试了例如$this_date_range=dateRange($start_date,$end_date);
,但它也是空的。。。我对函数没有太多经验,所以我不知道如何创建一个包含所有日期范围的var?
提前非常感谢!!:)
当您说"打印$array"时,您是在执行文字print($array)
吗?将Array
作为预期的输出-不能将print()
作为数组。您必须使用print_r()
或var_dump()
。两者都会将数据结构转储为文本格式。