我需要每周和每月计算订单。到目前为止我设置的代码是这样的:
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'];
}
这里的问题是,如果日期是星期一,则是上周一和下一个星期日。我需要它计算周一,而不是下一个。这个月也是如此。总之,我只是在寻找最准确和最简单的答案。它不必是格式。每月和每周都有。
答案 0 :(得分:0)
使用现有代码,您可以在定义Key之前添加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));
}
您可能需要检查“今天”是当天的实际文字表示。
答案 1 :(得分:0)
如果你使用mysql,你可以让sql做很多工作。
$x = mysql_query("SELECT * FROM `mysales`
WHERE `MerchantID`=’$id’
AND `Saledate` > ’TIMESTAMP(".strtotime(’-1 week’).")’");