Нужно ли мне узнать фактический часовой пояс клиента или я могу предположить, что они все находятся в часовом поясе EST? (Веб-приложение только для США)

У меня есть вопрос о дате и времени в моем веб-приложении. Приложение будет продавать ежемесячные подписки. Показывает даты только когда клиенты покупают и отменяют подписки. Клиенты могут приобрести дополнительные услуги в середине месяца. Приложение рассчитывает пропорциональную плату для клиента до его юбилейной даты.

Я буду хранить даты / время в UTC. Это только для клиентов из США.

Я рассматриваю следующие варианты, и я хотел бы получить отзывы от более опытных разработчиков:

1 - всегда указывать даты в EST. Я могу добавить небольшую подпись, объясняющую, что во всех подписках используется EST. Это было бы просто, поскольку мне не пришлось бы иметь дело с часовыми поясами клиентов. Однако я не уверен, что клиенты будут откладывать это. Какие-нибудь мысли?

2 - всегда указывать даты в EDT. Это, вероятно, будет работать не очень хорошо, поскольку будет сложнее объяснить причину его использования. Однако я считаю, что это будет проще обрабатывать, чем EST.

3 - запрашивать информацию о часовом поясе клиента, когда он подписывается на услугу, и использовать эту информацию. Я не думаю, что это добавило бы слишком много сложностей, однако я должен был бы предложить им возможность изменить часовые пояса, и я должен был бы решить, что делать с существующими подписками, когда есть изменение в часовом поясе. Если я выберу эту опцию, я бы попросил клиента выбрать часовой пояс из выпадающего списка.

4 - узнать местонахождение клиента (город и штат) и рассчитать часовой пояс самостоятельно.

5 - попытайтесь угадать часовой пояс клиента, основываясь на его IP или другом методе (идеи???).

Варианты 3, 4 и 5, вероятно, будут наиболее удобными для пользователя. Вариант 1 представляется наиболее простым для реализации.

Простите за длинный пост. Если бы вы нашли время, чтобы прочитать его, не могли бы вы уделить немного больше времени и поделиться своими мыслями и опытом?

Спасибо.

ОБНОВЛЕНИЕ 1 - 3/3/2011 - 17:08 MST

Только что обнаружил, что PayPal записывает транзакции с использованием PDT и показывает их клиенту, используя локальный часовой пояс клиента, который они установили при регистрации в PayPal.

Я сейчас склонен к:

1 - показать текущую дату, используя PDT (для выравнивания с PayPal) - я, вероятно, изменю код, чтобы показать дату и время PDT. В настоящее время я показываю только дату. Я верю, что клиенту будет понятнее, если я покажу время.

2 - я не буду показывать юбилейную дату. Я позволю PayPal справиться с этим. Я просто скажу, что это ежемесячный счет.

3 - Когда клиенты добавляют новую услугу, я вычисляю пропорциональные значения, используя PDT, и я даю им трехдневный льготный период для учета различий в часовых поясах (спасибо Роберту Леви ниже за предложение) и обработки PayPal (я не хотите взимать с них пропорциональную сумму, если они составляют всего пару дней от своих регулярных ежемесячных платежей).

Какие-нибудь мысли?

Обновление 2 - 03.09.2011 - 21:01 MST

Просто быстрое обновление. После дальнейших исследований я обнаружил, что PayPal отправляет мне дату транзакции назад. Я не собираюсь показывать какие-либо даты, пока клиент не оплатит PayPal, и я не получу подтверждение. Я укажу дату транзакции PayPal в чеке клиента.

Похоже на план. Как вы думаете?

1 ответ

Решение

Просто добавьте льготный период 24 часа от UTC. Легко кодировать, без дополнительного интерфейса, и вряд ли расстроит любого клиента.

Другие вопросы по тегам