]> git.localhorst.tv Git - alttp.git/commitdiff
slightly better way of fixing timezones
authorDaniel Karbach <daniel.karbach@localhorst.tv>
Sun, 12 Mar 2023 13:51:45 +0000 (14:51 +0100)
committerDaniel Karbach <daniel.karbach@localhorst.tv>
Sun, 12 Mar 2023 13:51:45 +0000 (14:51 +0100)
app/Console/Commands/SyncSpeedGaming.php
database/migrations/2023_03_12_134350_event_timezone_fix.php [new file with mode: 0644]

index b2ac7f1b315fd94f2bcd15d571f9bcc958323959..ea098391046d898a16099452958c2551414b4d59 100644 (file)
@@ -104,9 +104,15 @@ class SyncSpeedGaming extends Command {
                $episode->event()->associate($event);
                $episode->title = $sgEntry['match1']['title'];
                $start = Carbon::createFromFormat('Y-m-d\TH:i:sP', $sgEntry['when']);
-               // if speedgaming is in DST, it fucks up the timestamp
-               if (Carbon::now(new \DateTimeZone('America/Chicago'))->dst) {
-                       $start->add(1, 'hour');
+               if ($event->fix_timezone) {
+                       $sg_zone = new \DateTimeZone('America/Chicago');
+                       $event_zone = new \DateTimeZone($event->fix_timezone);
+                       // if speedgaming is in DST, it fucks up the timestamp
+                       if (Carbon::createFromTimestamp($start->timestamp, $sg_zone)->dst && !Carbon::createFromTimestamp($start->timestamp, $event_zone)->dst) {
+                               $start->add(1, 'hour');
+                       } else if (!Carbon::createFromTimestamp($start->timestamp, $sg_zone)->dst && Carbon::createFromTimestamp($start->timestamp, $event_zone)->dst) {
+                               $start->sub(1, 'hour');
+                       }
                }
                if (!$episode->start || $start->ne($episode->start)) {
                        $episode->start = $start;
diff --git a/database/migrations/2023_03_12_134350_event_timezone_fix.php b/database/migrations/2023_03_12_134350_event_timezone_fix.php
new file mode 100644 (file)
index 0000000..7ac8374
--- /dev/null
@@ -0,0 +1,32 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+return new class extends Migration
+{
+       /**
+        * Run the migrations.
+        *
+        * @return void
+        */
+       public function up()
+       {
+               Schema::table('events', function(Blueprint $table) {
+                       $table->string('fix_timezone')->default('');
+               });
+       }
+
+       /**
+        * Reverse the migrations.
+        *
+        * @return void
+        */
+       public function down()
+       {
+               Schema::table('events', function(Blueprint $table) {
+                       $table->dropColumn('fix_timezone');
+               });
+       }
+};