Нужно ли мне узнать фактический часовой пояс клиента или я могу предположить, что они все находятся в часовом поясе 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. Легко кодировать, без дополнительного интерфейса, и вряд ли расстроит любого клиента.