Я реализую средство регистрации, которое отправляет ссылку с токеном в нем - токен действителен в течение 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 зимой / осенью - но если вы спросите случайного человека в каком часовом поясе мы находимся, в лучшем случае вы получите 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>");
?>