スケジュール アプリで日付/時刻を管理するために Zend_Date を使用しています。
ユーザーのタイムゾーンを特定できる唯一の方法は、タイムゾーン オフセットのみを提供する Javascript を使用することです。Zend_Date は、'America/New_York' 形式のタイムゾーンのみを使用しているようです。
ユーザーのタイムゾーンをこの形式で取得したり、Zend_Date でタイムゾーン オフセットを設定したりする方法はありますか?
ありがとう!
スケジュール アプリで日付/時刻を管理するために Zend_Date を使用しています。
ユーザーのタイムゾーンを特定できる唯一の方法は、タイムゾーン オフセットのみを提供する Javascript を使用することです。Zend_Date は、'America/New_York' 形式のタイムゾーンのみを使用しているようです。
ユーザーのタイムゾーンをこの形式で取得したり、Zend_Date でタイムゾーン オフセットを設定したりする方法はありますか?
ありがとう!
ニッキー、
PHP固有のDateTimeオブジェクトとDateTimeZoneオブジェクトがこれに適しているため、これにはZend_Dateは実際には必要ありません。ただし、本当にZend_Dateを使用する必要がある場合は、正しい方向に向けることができます。
次の例を参照してください
これにより、必要な場所に移動できます。行き詰まったら、コードサンプルを投稿してください。
timezone_name_from_abbr 関数を使用できます。
$javascript_offset = '-1';
$zone = timezone_name_from_abbr('', $javascript_offset * 3600, 0);
DST も考慮する必要があります。詳細については、この例をご覧ください。
JavaScript を使用して、Cookie をユーザーのタイムゾーン オフセットに設定できます。
次に、phpで、オフセットでインデックス付けされた配列を作成できます
$timezones = array (
'-1' => 'adfas/adsfafsd',
'-2' => 'adsfasdf/asdfasdf'
...
);
$date->setTimezone( $timezones[$_COOKIE['tz_offset']] );