PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 1.3
Independent Analytics – WordPress Analytics Plugin v1.3
2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / inc / queries / range-query.php
independent-analytics / inc / queries Last commit date
range-query.php 4 years ago referrers.php 4 years ago resources.php 4 years ago views.php 4 years ago
range-query.php
72 lines
1 <?php
2
3 if (!class_exists('IAWP_Range_Query')) {
4 abstract class IAWP_Range_Query
5 {
6 private $start;
7 private $end;
8 const FORMAT_PATTERN = 'Y-m-d H:i:s';
9
10 public function __construct($start = null, $end = null)
11 {
12 if (is_null($start) || is_null($end)) {
13 list($start, $end) = IAWP()->default_date_range();
14 }
15
16 $this->start = (clone $start)->setTime(0, 0, 0);
17 $this->end = (clone $end)->setTime(23, 59, 59);
18 }
19
20 final public function start()
21 {
22 return $this->start;
23 }
24
25 final protected function formatted_start()
26 {
27 return $this->start->format(self::FORMAT_PATTERN);
28 }
29
30 final public function end()
31 {
32 return $this->end;
33 }
34
35 final protected function formatted_end()
36 {
37 return $this->end->format(self::FORMAT_PATTERN);
38 }
39
40 private function range_size()
41 {
42 return $this->start->diff($this->end)->days + 1;
43 }
44
45 final public function prev_period_start()
46 {
47 $prev_start = clone $this->start;
48 $range_size = $this->range_size();
49
50 return $prev_start->modify("-$range_size days");
51 }
52
53 final protected function prev_period_formatted_start()
54 {
55 return $this->prev_period_start()->format(self::FORMAT_PATTERN);
56 }
57
58 final public function prev_period_end()
59 {
60 $prev_end = clone $this->end;
61 $range_size = $this->range_size();
62
63 return $prev_end->modify("-$range_size days");
64 }
65
66 final protected function prev_period_formatted_end()
67 {
68 return $this->prev_period_end()->format(self::FORMAT_PATTERN);
69 }
70 }
71 }
72