1

週単位および月単位で注文を計算する必要があります。これまでにセットアップしたコードは次のようになります。

foreach ($commissions as $c) {
    $ts = strtotime($c['order_date']);

    $lastWeekKey = date("Y-m-d", strtotime('last monday', $ts));
    $nextWeekKey = date("Y-m-d", strtotime('next sunday', $ts));

    $stringDays = $lastWeekKey." to ".$nextWeekKey;

    if (!isset($dates[$stringDays])) {
        $dates[$stringDays] = 0;
    }
    $dates[$stringDays] += $c['projected_payment'];
}

ここでの問題は、日付が月曜日の場合、先週の月曜日と次の日曜日になることです。次の月曜日ではなく、その月曜日を数える必要があります。その月も同様です。全体として、私は最も正確で単純な答えを探しているだけです。形式である必要はありません。マンスリー用とウィークリー用があります。

4

2 に答える 2

0

mysql を使用すると、SQL に多くの作業を任せることができます。

$x = mysql_query("SELECT * FROM `mysales` 
             WHERE `MerchantID`=’$id’
             AND `Saledate`  > ’TIMESTAMP(".strtotime(’-1 week’).")’");
于 2012-05-30T21:42:15.393 に答える
0

既存のコードでは、キーを定義する前に if ステートメントを追加するだけです。いいえ:

$thisday=getdate($ts);
if($thisday==1) { //1 = Monday
    $lastWeekKey = date("Y-m-d",  strtotime('today',$ts));
    $nextWeekKey = date("Y-m-d",  strtotime('next sunday',$ts));
} else {
    $lastWeekKey = date("Y-m-d",  strtotime('next monday',$ts));
    $nextWeekKey = date("Y-m-d",  strtotime('next sunday',$ts));
}

「今日」が現在の日の実際のテキスト表現であることを確認する必要がある場合があります。

于 2012-05-30T21:16:07.370 に答える