$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;
--- /dev/null
+<?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');
+ });
+ }
+};