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

使用现有代码,您可以在定义密钥之前添加一个 if 语句。IE:

$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 回答
0

如果你使用 mysql,你可以让 sql 做很多工作。

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