Open1
アプリケーションにおけるタイムゾーンの扱い
-
システム時間を設定
1-1. date_default_timezone_get()を利用、もたは.envやConfig/timezone.phpなどでベースのタイムゾーンを決定しておく
1-2. 利用したいタイムゾーンを設定する。DBのシステムテーブルに保存してはどうか -
DBには1で設定したタイムゾーンの値で保存する
-
2で保存した値を1-2で保存した利用したいタイムゾーンに変換する。
以下サンプル
$value = "2021-03-15 16:30:00";
$defaultTimeZone = date_default_timezone_get();
$timeZone = "Europe/London";
$dateTime = convertTimeZone($value, $defaultTimeZone, $timeZone);
function convertTimeZone($time, $sourceTimeZoneName, $targetTimeZoneName)
{
$sourceTimeZone = new DateTimeZone($sourceTimeZoneName);
$targetTimeZone = new DateTimeZone($targetTimeZoneName);
$myDateTime = new DateTime($time, $sourceTimeZone);
$myDateTime->setTimeZone($targetTimeZone);
return $myDateTime;
}