球場分時段計費演算法
1.輸入資料 開始結束時間
2.變數(時間段,單價,初始價,封頂價)
3.思路 :(1).傳入開始結束時間,提取必要的對比資訊(開始結束小時,時間戳,經過時長)。(2.)根據時間建立1-2的陣列。(2.迴圈時間陣列,呼叫不同時間段的計價方法)
不廢話,直接貼貼**
public $stime = "2018-08-04 23:41:00";//開始時間
public $etime = "2018-08-05 19:55:00";//結束時間
public $h1=6; //第一時段結束 第二時段開始的小時
public $h2=12;//第二時段結束 第三時段開始的小時
public $h3=18;//第三時段結束 第四時段開始的小時
public $b_price=10; //起步價1
public $price1=0.1; // 第一時段**
public $price2=0.2; // 第二時段**
public $price3=0.3; // 第三時段**
public $price4=0.5; // 第四時段**
public $top1=22; //封頂價1
public $top2=25; //封頂價2
public $top3=28; //封頂價3
public $top4=32; //封頂價4
public $sum=0;//總價
public $sum1=0;//第1時段**
public $sum2=0;//第2時段**
public $sum3=0;//第3時段**
public $sum4=0;//第4時段**
public $sum2_1=0;//第2-1時段**
public $sum2_2=0;//第2-2時段**
public $sum2_3=0;//第2-3時段**
public $sum2_4=0;//第2-4時段**
/*** 球場計價演算法
* @param 開始 結束時間
* @return string 消費金額,消費時段,消費明細
//從開始世時間 左側開始擷取
if($sth >= 0 && $sth < $this->h1)
else if($sth >= $this->h1 && $sth < $this->h2)
else if($sth >= $this->h2 && $sth < $this->h3)
else if($sth >= $this->h3 && $sth < 24)
//dump($et_st_00>86400?$eth+24:$eth);
//從結束時間 右側開始擷取 結束時間不能=設定的時間點
if($eth>= $this->h3 && $eth< 24 && $et_st_00 - $this->h3*3600>0)
else if($eth>= $this->h2 && $eth<= $this->h3 && $et_st_00 - $this->h2*3600>0)
else if($eth>= $this->h1 && $eth<= $this->h2 && $et_st_00 - $this->h1*3600>0)
else if($eth>= 0 && $eth<= $this->h1)
使用SQL 的CASE 語句做分時段統計
某日老闆突然要求,想看各時段的訂單數量。心想,訂單表中有紀錄時間點,這應該不成問題,只是這 sql 語句該如何下?如果乙個小時統計一次,總不能分24次吧!訂單資料表 orders 如下 希望得出的結果如下 利用 case 語句就能完成任務。select case when date format t...