私は開始日と終了日の間のすべての日の配列を作成し、PHPの関数は、次のしている:私はその後、使用PHPのdateRange関数:varに戻り値を保存するには?
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を出力しようとすると、空の "配列"だけが返されます。しかし、上記のifを使用すると、うまく動作します。また、私は$this_date_range=dateRange($start_date,$end_date);
でもそれも空でした...私は関数に熟練していないので、どのようにしてすべての日付範囲を含むvarを作成できますか?
ありがとうございます! :)
ああ、あなたは天才です、ありがとうございました! :)私は、ありがとう、これは今動作していることを知らなかった... :) – Chris
しかし、それは1つのvarを返すために動作します。 $ total_dates = dateRange($ start_date、$ end_date)、ただし、$ total_dates。= ...は動作しません!それは最後の値を取るだけです...それに複数の値を追加するにはどうしたらいいですか? – Chris
配列を返す場合は、文字列連結ではなく、配列表記を使用する必要があります。 '$ total_dates [] = dateRange()'、またはarray_merge()などです。 –