1

現在、期間の量を計算しようとしています(各期間は、特定の日または日の後の1週間です)。最初の期間が 2013 年 1 月 1 日 (火曜日) から 2013 年 1 月 29 日 (火曜日) まで (合計 4 期間) とします。

次のようなテーブルがあります。

id | startDate (datetime) | endDate (datetime)

ユーザーが と を入力できる 2 つの入力フィールドがありstart dateますend date01-01-2013との間の任意29-01-2013の日付を入力し、火曜日 (期間の開始日) を何回通過するかを再度決定したいと思います。

したがって、選択01-01-2013 until 07-01-2013すると:1になりますが、選択すると、06-01-2013 till 09-01-2013これは次のようになり、次のように2なります。06-01-2013 till 16-01-20133

明確にするために、2 つの日付の間の週数は知りたくありません。データベースで指定された同じ日 (火曜日) に「交差」する回数だけを知りたいのです。各期間は1週間です。私を助けてくれる人はいますか?

4

2 に答える 2

2

PHPのdate()関数を使用します。

$startday = strtotime($start_date_from_db);//date from db;
$endday = strtotime($end_date_from_db);//date from db;
$counter = 0;
for($i=$startday; $i<=$endday; $i+=86400) {
    $current_day = date('w', $i);
    if($current_day == 2) { //0 for sunday, 1 for monday, 2 for tuesday
        $counter++;
    }
}
于 2013-03-11T16:11:54.433 に答える
1

日付を比較するときの良い方法は次のとおりです。

1-日付をタイムスタンプに変換します。

$timestamp1 = strtotime($date1);
$timestamp2 = strtotime($date2);

2- 目的の操作を実行します。この場合:

$timebetween = $timestamp2 - $timestamp1;

3- 結果 (秒数) を目的の値に変換します。この場合:

$weeks= $timebetween / 604800;
于 2013-03-11T16:21:53.143 に答える