DayModel.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. /**
  3. * DayModel.php UTF-8
  4. * 每日数据
  5. *
  6. * @date : 2018/2/6 23:16
  7. *
  8. * @license 这不是一个自由软件,未经授权不许任何使用和传播。
  9. * @author : wuyonghong <wyh@huosdk.com>
  10. * @version : HUOSDK 8.0
  11. */
  12. namespace huo\model\data;
  13. class DayModel extends DayBaseModel {
  14. #protected $name = 'day';
  15. protected $table = 'dw_day';
  16. /**
  17. * 根据日期获取
  18. *
  19. * @param string $field 字段,包括别名
  20. * @param string $start_date 开始日期
  21. * @param string $end_date 结束日期
  22. *
  23. * @param string $alias 别名
  24. *
  25. * @return array
  26. * @throws \think\db\exception\DataNotFoundException
  27. * @throws \think\db\exception\ModelNotFoundException
  28. * @throws \think\exception\DbException
  29. */
  30. public function getByDate($field, $start_date, $end_date, $alias = null) {
  31. $alias or $alias = $field;
  32. $_rows = $this->whereBetween('date', [$start_date, $end_date])
  33. ->field("date, $field")
  34. ->select()->toArray();
  35. $_data = [];
  36. foreach ($_rows as $_row) {
  37. $_data[$_row['date']] = $_row[$alias];
  38. }
  39. $result = [];
  40. for ($_i = strtotime($start_date); $_i <= strtotime($end_date); $_i += 24 * 3600) {
  41. $_key = date('Y-m-d', $_i);
  42. $result[date('m-d', $_i)] = isset($_data[$_key]) ? doubleval($_data[$_key]) : 0;
  43. }
  44. return $result;
  45. }
  46. }