PHP dateRange函数:如何将返回值保存在变量中


PHP dateRange function: how to save the return value in a var?

我有下面的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()。两者都会将数据结构转储为文本格式。