0
0

More than 3 years have passed since last update.

クライアントとサーバーでタイムゾーンを合わせる3つの方法

Posted at

目次

  1. あらかじめユーザー設定で登録したものをデータベースから取得する
  2. フォームで選択させて送信する
  3. JavaScriptで取得して送信する

あらかじめユーザー設定で登録したものをデータベースから取得する

ユーザー設定にタイムゾーンの設定を設け、ユーザーに紐付けて保存します。

Carbon::parse($request->date, $user->timezone)

PHPの場合は以下の関数で取得します。

timezone_identifiers_list(\DateTimeZone::ALL)

セレクトボックスを用意すると良いでしょう。

@foreach (timezone_identifiers_list(\DateTimeZone::ALL) as $timezone)
    <option value="{{ $timezone }}">{{ $timezone }}</option>
@endforeach

フォームで選択させて送信する

日時を送信するフォームにタイムゾーンの入力項目を設け、送信したものを使います。

Carbon::parse($request->date, $request->timezone)

ユーザー設定と同様にセレクトボックスを用意すると良いでしょう。

JavaScriptで取得して送信する

モダンブラウザではタイムゾーンを取得できるようになっています。hiddenに埋め込むなり、axiosやfetchに渡すなりして送信しましょう。

Intl.DateTimeFormat().resolvedOptions().timeZone

IEには対応していません。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0