PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.12.2
Independent Analytics – WordPress Analytics Plugin v2.12.2
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 / IAWP / Date_Picker / Date_Picker.php
independent-analytics / IAWP / Date_Picker Last commit date
Date_Picker.php 1 year ago Month.php 1 year ago
Date_Picker.php
41 lines
1 <?php
2
3 namespace IAWP\Date_Picker;
4
5 use IAWP\Date_Range\Relative_Date_Range;
6 use IAWP\Utils\Timezone;
7 /** @internal */
8 class Date_Picker
9 {
10 private $start;
11 private $end;
12 private $relative_range;
13 private $first_data;
14 public function __construct($start, $end, $relative_range)
15 {
16 $this->start = $start;
17 $this->end = $end;
18 $this->relative_range = $relative_range;
19 $this->first_data = Relative_Date_Range::beginning_of_time();
20 }
21 public function calendar_html()
22 {
23 return \IAWPSCOPED\iawp_blade()->run('date-picker.date-picker', ['months' => $this->months(), 'start_date' => $this->start, 'end_date' => $this->end, 'relative_range' => $this->relative_range, 'date_ranges' => Relative_Date_Range::ranges(), 'timezone' => Timezone::site_timezone(), 'user_format' => \get_option('date_format'), 'first_data' => $this->first_data->format('Y-m-d'), 'site_offset_in_seconds' => Timezone::site_offset_in_seconds($this->start)]);
24 }
25 private function months() : array
26 {
27 $first_day_last_year = new \DateTime('first day of January last year', Timezone::site_timezone());
28 $start = $this->first_data < $first_day_last_year ? clone $this->first_data : clone $first_day_last_year;
29 $start->modify('first day of this month')->setTime(0, 0, 0);
30 $end = (new \DateTime('last day of this month', Timezone::site_timezone()))->setTime(23, 59, 59);
31 $interval = new \DateInterval('P1M');
32 // 1 month interval
33 $period = new \DatePeriod($start, $interval, $end);
34 $months = [];
35 foreach ($period as $month) {
36 $months[] = new \IAWP\Date_Picker\Month($month, $start);
37 }
38 return $months;
39 }
40 }
41