PluginProbe
WANotifier for Forms and Actions / 3.1.1
WANotifier for Forms and Actions v3.1.1
3.1.1 3.1.0 3.0.4 2.7.10 2.7.11 2.7.12 2.7.13 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 2.7.8 2.7.9 3.0.0 3.0.1 3.0.2 3.0.3 trunk 0.1.0 0.1.1 1.0.0 1.0.1 1.0.2 All 67 releases
notifier / libraries / action-scheduler / classes / ActionScheduler_DateTime.php

ActionScheduler_DateTime.php in WANotifier for Forms and Actions 3.1.1, at libraries/action-scheduler/classes/ActionScheduler_DateTime.php

80 lines 2.0 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; // phpcs:ignore WordPress.NamingConventions.ValidVariableName.PropertyNotSnakeCase
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 string|int $offset UTC offset value.
38 */
39 public function setUtcOffset( $offset ) {
40 $this->utcOffset = intval( $offset ); // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
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(); // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
52 }
53
54 /**
55 * Set the TimeZone associated with the DateTime
56 *
57 * @param DateTimeZone $timezone Timezone object.
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; // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
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