Я реализую средство регистрации, которое отправляет ссылку с токеном в нем - токен действителен в течение 1 часа. Итак, в электронном письме (допустим, сейчас 14:20) я хочу сказать:
Вы должны перейти по этой ссылке до 15:30.
Аудитория этого сайта будет в Ирландии / Великобритании, США / Канаде и, возможно, в некоторых странах Европы, поэтому я хотел указать время истечения срока действия в нескольких часовых поясах, которые будут понятны этим (нетехническим) людям.
Так вот что я придумал
Click by:
Ireland/UK > 25 Apr 2018 13:59
CET (Berlin) > 25 Apr 2018 14:59
Pacific (Los Angeles) > 25 Apr 2018 05:59
Mountain (Denver) > 25 Apr 2018 06:59
Central (Chicago) > 25 Apr 2018 07:59
Eastern (New York) > 25 Apr 2018 08:59
Теперь я понимаю, что Денвер в настоящее время является MDT (и MST зимой), но здесь, в Ирландии, мы сейчас находимся в IST (UTC + 1) или GMT зимой / осенью - но если вы спросите случайного человека, какой часовой пояс мы, в лучшем случае, вы получите ответ по Гринвичу круглый год. Итак, я указываю время там как общее «Гора» и даю образец города.
Как этот подход подходит людям в США / Канаде?
Мой код ниже, а вот живая ссылка
<?php
$exipry = 60*60 + time();
$now_obj = new DateTime(date("Y-m-d H:i:s", $exipry));
$now_obj->setTimezone(new DateTimeZone('Europe/Dublin'));
$now_hour_from_IRELAND_datetime = $now_obj->format('d M Y H:i');
$now_obj->setTimezone(new DateTimeZone('Europe/Berlin'));
$now_hour_from_CET_datetime = $now_obj->format('d M Y H:i');
$now_obj->setTimezone(new DateTimeZone('America/Los_Angeles'));
$now_hour_from_pacific_datetime = $now_obj->format('d M Y H:i');
$now_obj->setTimezone(new DateTimeZone('America/Denver'));
$now_hour_from_mountain_datetime = $now_obj->format('d M Y H:i');
$now_obj->setTimezone(new DateTimeZone('America/Chicago'));
$now_hour_from_central_datetime = $now_obj->format('d M Y H:i');
$now_obj->setTimezone(new DateTimeZone('America/New_York'));
$now_hour_from_eastern_datetime = $now_obj->format('d M Y H:i');
print("<h1>1 hour from now is:</h1>");
print("Ireland/UK > $now_hour_from_IRELAND_datetime<p>");
print("CET (Berlin) > $now_hour_from_CET_datetime<p>");
print("Pacific (Los Angeles) > $now_hour_from_pacific_datetime<p>");
print("Mountain (Denver) > $now_hour_from_mountain_datetime<p>");
print("Central (Chicago) > $now_hour_from_central_datetime<p>");
print("Eastern (New York) > $now_hour_from_eastern_datetime<p>");
?>
Не могли бы вы прояснить свой вопрос: вы просто хотите знать, какие часовые пояса должны быть в вашем списке, чтобы охватить США и Канаду? Или вы хотели и других? Пожалуйста, будьте конкретны. Спасибо.
См. Мой комментарий под ответом О Джонса - это просто нужно для клиентов из США, скорее всего, на восточном побережье. Пытаться представить время истечения срока действия ссылки как можно более простым языком, не усложняя ситуацию, говоря о летнем времени или нет, если возможно





Мне кажется, это правильно.
Обязательно протестируйте его и для «Азии / Калькутты». Это хороший тест, потому что смещение часового пояса составляет полчаса.
То же самое с «Америкой / Фениксом», потому что они придерживаются стандартного времени круглый год.
Обычно такие приложения просят каждого пользователя указать название часового пояса во время адаптации. (Но многие пользователи не беспокоят)
В США, когда мы хотим указать часовой пояс таким образом, чтобы он не менялся между летом и зимой, мы говорим «Восточное время», «Центральное время», «Горное время», «Тихоокеанское время» и Гавайи. и время Аляски. У канадцев также есть «атлантическое время» («Америка / Галифакс»). В Аризоне («Америка / Феникс») говорят «Аризонское время».
Я мог бы продолжить все странности часовых поясов в американском штате Индиана (где законодательный орган однажды был близок к принятию закона, устанавливающего значение π как 22/7). Но я тебя пощажу.
Только что попробовал Индию, сработало нормально. На самом деле, у меня был Phoenix для Mountain Time, и я подумал, что у меня есть ошибка, такая же, как в Лос-Анджелесе. Посмотрел дальше, чтобы увидеть, что у них нет летнего времени. Ах, мы все знаем, что пирог - это 3 и кусок!
Я обновил действующую ссылку предложенным текстом. Если вы не считаете, что мне нужно, я оставлю это в 4 часовых поясах, так как на самом деле этот сайт посвящен ирландским продуктам, я бы сказал, что чем дальше от восточного побережья, тем меньше интерес.
В День Святого Патрика все в США становятся ирландцами. Но этот день всегда приходится на летнее время.
Спасибо, сделаю. Но меня больше интересовала сторона пользовательского интерфейса, например, насколько североамериканцы знакомы с часовыми поясами и понятен ли мой текст?