PluginProbe
SureForms – Contact Form Builder, AI Forms, Payment Form, Survey & Quiz / 2.12.5
SureForms – Contact Form Builder, AI Forms, Payment Form, Survey & Quiz v2.12.5
2.12.6 2.12.5 2.12.4 2.12.3 2.12.2 2.12.1 2.12.0 2.11.1 2.11.0 2.10.1 2.10.0 2.9.1 2.9.0 2.8.2 2.8.1 2.7.0 2.7.1 2.8.0 trunk 0.0.10 0.0.11 0.0.12 0.0.13 0.0.2 0.0.3 All 96 releases
sureforms / inc / lib / action-scheduler / classes / ActionScheduler_DateTime.php
ActionScheduler_DateTime.php
80 lines 1.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * ActionScheduler DateTime class.
5 *
6 * This is a custom extension to DateTime that
7 */
8 class ActionScheduler_DateTime extends DateTime {
9
10 /**
11 * UTC offset.
12 *
13 * Only used when a timezone is not set. When a timezone string is
14 * used, this will be set to 0.
15 *
16 * @var int
17 */
18 protected $utcOffset = 0;
19
20 /**
21 * Get the unix timestamp of the current object.
22 *
23 * Missing in PHP 5.2 so just here so it can be supported consistently.
24 *
25 * @return int
26 */
27 #[\ReturnTypeWillChange]
28 public function getTimestamp() {
29 return method_exists( 'DateTime', 'getTimestamp' ) ? parent::getTimestamp() : $this->format( 'U' );
30 }
31
32 /**
33 * Set the UTC offset.
34 *
35 * This represents a fixed offset instead of a timezone setting.
36 *
37 * @param $offset
38 */
39 public function setUtcOffset( $offset ) {
40 $this->utcOffset = intval( $offset );
41 }
42
43 /**
44 * Returns the timezone offset.
45 *
46 * @return int
47 * @link http://php.net/manual/en/datetime.getoffset.php
48 */
49 #[\ReturnTypeWillChange]
50 public function getOffset() {
51 return $this->utcOffset ? $this->utcOffset : parent::getOffset();
52 }
53
54 /**
55 * Set the TimeZone associated with the DateTime
56 *
57 * @param DateTimeZone $timezone
58 *
59 * @return static
60 * @link http://php.net/manual/en/datetime.settimezone.php
61 */
62 #[\ReturnTypeWillChange]
63 public function setTimezone( $timezone ) {
64 $this->utcOffset = 0;
65 parent::setTimezone( $timezone );
66
67 return $this;
68 }
69
70 /**
71 * Get the timestamp with the WordPress timezone offset added or subtracted.
72 *
73 * @since 3.0.0
74 * @return int
75 */
76 public function getOffsetTimestamp() {
77 return $this->getTimestamp() + $this->getOffset();
78 }
79 }
80