海南旅游SAAS
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

78 lines
3.0 KiB

4 years ago
  1. <?php
  2. namespace App\Common;
  3. class DataTime
  4. {
  5. /**
  6. * 处理时间为空时的时间显示格式
  7. * @param $time
  8. * @return string
  9. */
  10. public static function format($time)
  11. {
  12. if (is_numeric($time)&&$time>0) {
  13. return date('Y-m-d H:i', $time);
  14. } elseif (empty($time) || $time->format('Y-m-d') == '1970-01-01') {
  15. return '-';
  16. }
  17. return $time->format('Y-m-d H:i');
  18. }
  19. /**
  20. * 查询时间范围
  21. * @param $option
  22. * @return array
  23. */
  24. public static function beginAndEnd($option)
  25. {
  26. $t = time();
  27. switch ($option) {
  28. case 'today':
  29. $beginTime = date('Y-m-d H:i:s', mktime(0, 0, 0, date("m", $t), date("d", $t), date("Y", $t)));
  30. $endTime = date('Y-m-d H:i:s',mktime(0, 0, 0, date('m'), date('d') + 1, date('Y')) - 1);
  31. break;
  32. case 'yesterday':
  33. $beginTime = date('Y-m-d H:i:s',mktime(0, 0, 0, date('m'), date('d') - 1, date('Y')));
  34. $endTime = date('Y-m-d H:i:s',mktime(0, 0, 0, date('m'), date('d'), date('Y')) - 1);
  35. break;
  36. case '7day':
  37. $beginTime = date('Y-m-d H:i:s',mktime(0, 0, 0, date('m'), date('d') - 7, date('Y')));
  38. $endTime = date('Y-m-d H:i:s',mktime(0, 0, 0, date('m'), date('d') + 1, date('Y')) - 1);
  39. break;
  40. case 'week':
  41. $timestamp = mktime(0, 0, 0, date('m'), date('d') - date('w') + 1, date('Y'));
  42. $beginTime = date('Y-m-d H:i:s', $timestamp);
  43. //本周结束日期
  44. $timestamp = mktime(23, 59, 59, date('m'), date('d') - date('w') + 7, date('Y'));
  45. $endTime= date('Y-m-d H:i:s',$timestamp);
  46. break;
  47. case 'last_week':
  48. $beginTime = date('Y-m-d H:i:s',mktime(0, 0, 0, date("m"), date("d") - date("w") + 1 - 7, date("Y")));
  49. $endTime = date('Y-m-d H:i:s',mktime(23, 59, 59, date("m"), date("d") - date("w") + 7 - 7, date("Y")));
  50. break;
  51. case 'month':
  52. $beginTime = date('Y-m-d H:i:s',mktime(0, 0, 0, date('m'), 1, date('Y')));
  53. $endTime = date('Y-m-d H:i:s',mktime(23, 59, 59, date('m'), date('t'), date('Y')));
  54. break;
  55. case 'last_month':
  56. $beginTime = date('Y-m-d H:i:s',mktime(0, 0, 0, date('m') - 1, 1, date('Y')));
  57. $endTime = date('Y-m-d H:i:s',strtotime(date("Y-m-d H:i:s", mktime(23, 59, 59, date("m"), 0, date("Y")))));
  58. break;
  59. default:
  60. $searchTime = request()->input('created_at');
  61. if ($searchTime){
  62. $beginTime = date('Y-m-d H:i:s',strtotime($searchTime['start']));
  63. $endTime = date('Y-m-d H:i:s',strtotime($searchTime['end']));
  64. }else{
  65. $beginTime = 0;
  66. $endTime = 999999999999;
  67. }
  68. break;
  69. }
  70. return [$beginTime,$endTime];
  71. }
  72. }