PluginProbe
Independent Analytics – WordPress Analytics Plugin / 2.5.1
Independent Analytics – WordPress Analytics Plugin v2.5.1
2.15.5 2.15.4 2.15.3 2.15.2 2.15.1 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 All 120 releases
independent-analytics / IAWP / Date_Range / Exact_Date_Range.php
Exact_Date_Range.php
43 lines 1.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace IAWP\Date_Range;
4
5 use DateTime;
6 use IAWP\Utils\WordPress_Site_Date_Format_Pattern;
7 use IAWPSCOPED\Proper\Timezone;
8 /** @internal */
9 class Exact_Date_Range extends \IAWP\Date_Range\Date_Range
10 {
11 /**
12 * Generate a range using exact start and end dates
13 *
14 * @param DateTime $start
15 * @param DateTime $end
16 * @param bool $convert_to_full_days
17 */
18 public function __construct(DateTime $start, DateTime $end, bool $convert_to_full_days = \true)
19 {
20 $this->set_range($start, $end, $convert_to_full_days);
21 }
22 /**
23 * Get a formatted label for the range
24 *
25 * @return string
26 */
27 public function label() : string
28 {
29 $formatted_start = $this->start->setTimezone(Timezone::site_timezone())->format(WordPress_Site_Date_Format_Pattern::for_php());
30 $formatted_end = $this->end->setTimezone(Timezone::site_timezone())->format(WordPress_Site_Date_Format_Pattern::for_php());
31 return $formatted_start . ' - ' . $formatted_end;
32 }
33 /**
34 * Get a range that covers the entirety of the plugins lifetime
35 *
36 * @return Exact_Date_Range
37 */
38 public static function comprehensive_range() : \IAWP\Date_Range\Exact_Date_Range
39 {
40 return new \IAWP\Date_Range\Exact_Date_Range(new DateTime('1991-01-06'), new DateTime());
41 }
42 }
43