diff options
author | Anton Luka Šijanec <anton@sijanec.eu> | 2024-05-27 13:08:29 +0200 |
---|---|---|
committer | Anton Luka Šijanec <anton@sijanec.eu> | 2024-05-27 13:08:29 +0200 |
commit | 75160b12821f7f4299cce7f0b69c83c1502ae071 (patch) | |
tree | 27e25e4ccaef45f0c58b22831164050d1af1d4db /vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/TimeZone.php | |
parent | prvi-commit (diff) | |
download | 1ka-75160b12821f7f4299cce7f0b69c83c1502ae071.tar 1ka-75160b12821f7f4299cce7f0b69c83c1502ae071.tar.gz 1ka-75160b12821f7f4299cce7f0b69c83c1502ae071.tar.bz2 1ka-75160b12821f7f4299cce7f0b69c83c1502ae071.tar.lz 1ka-75160b12821f7f4299cce7f0b69c83c1502ae071.tar.xz 1ka-75160b12821f7f4299cce7f0b69c83c1502ae071.tar.zst 1ka-75160b12821f7f4299cce7f0b69c83c1502ae071.zip |
Diffstat (limited to '')
-rw-r--r-- | vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/TimeZone.php | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/TimeZone.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/TimeZone.php new file mode 100644 index 0000000..b57af21 --- /dev/null +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/TimeZone.php @@ -0,0 +1,81 @@ +<?php
+
+namespace PhpOffice\PhpSpreadsheet\Shared;
+
+use DateTimeZone;
+use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
+
+class TimeZone
+{
+ /**
+ * Default Timezone used for date/time conversions.
+ *
+ * @var string
+ */
+ protected static $timezone = 'UTC';
+
+ /**
+ * Validate a Timezone name.
+ *
+ * @param string $timezone Time zone (e.g. 'Europe/London')
+ *
+ * @return bool Success or failure
+ */
+ private static function validateTimeZone($timezone)
+ {
+ return in_array($timezone, DateTimeZone::listIdentifiers(DateTimeZone::ALL_WITH_BC));
+ }
+
+ /**
+ * Set the Default Timezone used for date/time conversions.
+ *
+ * @param string $timezone Time zone (e.g. 'Europe/London')
+ *
+ * @return bool Success or failure
+ */
+ public static function setTimeZone($timezone)
+ {
+ if (self::validateTimezone($timezone)) {
+ self::$timezone = $timezone;
+
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Return the Default Timezone used for date/time conversions.
+ *
+ * @return string Timezone (e.g. 'Europe/London')
+ */
+ public static function getTimeZone()
+ {
+ return self::$timezone;
+ }
+
+ /**
+ * Return the Timezone offset used for date/time conversions to/from UST
+ * This requires both the timezone and the calculated date/time to allow for local DST.
+ *
+ * @param string $timezone The timezone for finding the adjustment to UST
+ * @param int $timestamp PHP date/time value
+ *
+ * @return int Number of seconds for timezone adjustment
+ */
+ public static function getTimeZoneAdjustment($timezone, $timestamp)
+ {
+ if ($timezone !== null) {
+ if (!self::validateTimezone($timezone)) {
+ throw new PhpSpreadsheetException('Invalid timezone ' . $timezone);
+ }
+ } else {
+ $timezone = self::$timezone;
+ }
+
+ $objTimezone = new DateTimeZone($timezone);
+ $transitions = $objTimezone->getTransitions($timestamp, $timestamp);
+
+ return (count($transitions) > 0) ? $transitions[0]['offset'] : 0;
+ }
+}
|