【发布时间】:2013-10-30 05:16:40
【问题描述】:
我有一个API,看起来像
/summary/yyyy/mm
- 返回请求的年份和月份的数据摘要。
- 如果这是当前年份和月份,它会返回剩余天数。例如:
days_left: 9代表2013和10,服务器上的当前日期是21 Oct 2013
我如何计算剩余天数?
这是在python中实现的
def current_financial_month_details(self):
time_from, time_to = self \
.get_start_end_time_current_financial_month()
today = datetime.today()
from_time = datetime(year=today.year, month=today.month,
day=today.day)
return {
'time_from': time_from,
'time_to': time_to,
'remaining_days': (time_to - from_time).days
}
问题?
- 服务器在东海岸,客户端(我用浏览器)在太平洋时区
- 当太平洋标准时间晚上 9 点时,东海岸的时间会发生变化,所以如果我在 PST 上运行
/summary/2013/10并且如果它是Oct 21 2013对我来说,则日期在美国东部标准时间已经改变,所以days_left: 8不正确客户端。对吗?
我该如何处理这种情况?
【问题讨论】:
-
向您的 API 添加时区参数?
-
很大程度上取决于你要做什么。如果它是分布式用户使用的某种时空分布式数据 - 您最好在 UTC 中工作并要求所有客户端进行转换/需要时区参数并立即在服务器上转换为 UTC(在达到业务逻辑之前)