我是否需要获取客户的实际时区,还是可以假设他们都在EST时区? (仅限美国的网络应用程序)

时间:2011-09-03 23:18:57

标签: datetime timezone dst datetimeoffset

我有一个关于处理日期和问题的问题我的网络应用程序的时间。该应用程序将出售每月订阅。它仅在客户购买和取消订阅时显示日期。客户可以在月中购买额外的服务。应用程序计算按比例向客户收取费用,直到他的周年纪念日为止。

我将以UTC格式存储日期/时间。它仅适用于美国客户。

我正在考虑以下选项,我希望得到更有经验的开发人员的反馈意见:

1 - 始终在EST中显示日期。我可以包含一个小标题,说明所有订阅都使用EST。这很简单,因为我不必处理客户的时区。但是我不太确定客户是否会因此被推迟。有什么想法吗?

2 - 始终在EDT中出现日期。这可能不会很好,因为更难以解释使用它的原因。但是我相信它比EST更容易处理。

3 - 在他注册服务并使用该信息时询问客户的时区信息。我不认为这会增加太多的复杂性,但是我必须为他们提供一个更改时区的选项,当时区发生变化时,我将不得不决定如何处理现有的订阅。如果我选择此选项,我会要求客户从下拉列表中选择时区。

4 - 询问客户的位置(城市和州)并自己计算时区。

5 - 尝试根据他的IP或其他方法猜测客户的时区(想法???)。

选项3,4和5可能是最用户友好的。选项1似乎是最直接的实现。

对不起,很长的帖子。如果你花时间阅读它,你会介意多花一点时间分享你的想法和经验吗?

谢谢。

更新1 - 9/3/2011 - 17:08 MST

刚刚发现PayPal使用PDT记录交易,并使用他们在使用PayPal注册时设置的客户端本地时区向客户端显示交易。

我现在倾向于:

1 - 使用PDT显示当前日期(与PayPal对齐) - 我可能会更改代码以显示日期&时间PDT。目前我只显示日期。我相信如果我也展示时间,客户会更清楚。

2 - 我不会显示周年纪念日。我会让PayPal处理这个问题。我只想说它是按月计费。

3 - 当客户添加新服务时,我将使用PDT按比例计算,我将给他们一个三天的宽限期来计算时区差异(感谢下面的Robert Levy建议)和PayPal处理(I如果他们只是每月定期收费的几天,就不想按比例向他们收取费用。

有什么想法吗?

更新2 - 9/3/2011 - 21:01 MST

快速更新。经过进一步研究后,我发现PayPal确实向我发送了一个交易日期。在客户以PayPal付款并收到确认之前,我不会显示任何日期。我将在客户的收据中显示PayPal的交易日期。

听起来像一个计划。你觉得怎么样?

1 个答案:

答案 0 :(得分:2)

只需从UTC添加24小时的宽限期。易于编码,无需额外的用户界面,也不会让任何客户感到不安。