-
MySQLでのタイムゾーンサポート について読む 、およびmysqlデータベースが現在のタイムゾーンテーブルで構成されていることを確認します。定期的に更新してください。
-
各場所を、
"America / Los_Angeles"
などの名前付きIANA/Olsonタイムゾーンに関連付けます 、または"Europe / London"
。 こちらのリスト を参照してください。 。 lat / lonを使用している場合は、これらの方法のいずれか を使用してタイムゾーンを検索できます。 。 -
MySQL
CONVERT_TZ
現在のUTC時刻を特定のゾーンに変換する関数。例:CONVERT_TZ(UTC_TIMESTAMP()、'UTC'、'Asia / Tokyo')
-
変換されたの曜日と時刻を使用します 場所のエントリで日と範囲を確認する時間。
また、UTCのみをデータベースに保存する方法、または「now」値と比較する前にすべての値をUTCに変換する方法を提案する人もいることに注意してください。 UTCの曜日は必ずしも各タイムゾーンと同じ曜日であるとは限らないため、これらのアプローチのいずれかがエッジケースで失敗する可能性があります。
するもう1つのアプローチ 作業は必要ですが、より多くの労力を要しますが、特定のUTCの開始時刻と停止時刻を、将来のある時間(少なくとも次の時間まで、場合によってはそれ以上)に事前に決定することです。次に、このリストをUTC時間でスキャンできます。これは、チェックする個別のエントリが数千以上ある場合に、大規模でより適切に機能します。ただし、小規模では、通常、オーバーヘッドの価値はありません。
同様に、各レコードに「現在オープン」フラグを設定するだけのバックグラウンドプロセスを設定することもできますが、データベースに対して常に機能している必要があり、「現在」以外の時間をチェックすることはできません。