GAE,JavaScript日期时间同步
GAE & JavaScript datetime sync
在客户端和服务器之间同步时间的最佳实践是什么?
我有查询数据存储的函数:
@classmethod
def read( cls, language=None, user=None, filters=None, **q_options ):
assert not isinstance( cls, BaseModel )
assert issubclass( cls, BaseModel )
query = cls.query( cls.language == language )
if filters:
for name, value in cls.attributes( filters, [] ).iteritems():
if name == 'updated':
query = query.filter( getattr(cls, name) >= value )
else:
query = query.filter( getattr( cls, name ) == value )
# logging.info( query )
# Query(kind='Page', filters=AND(
# FilterNode('language', '=', 'en'),
# FilterNode('updated', '>=', datetime.datetime(2014, 5, 7, 9, 12, 51, 142000))))
return query.fetch()
data = query.fetch( **q_options )
return cls.sort( data )
当使用ajax调用执行时:
{method: 'GET', url: '/something.json?updated=' + (new Date().getTime() / 1000)}
应该返回在调用中提供的时间之后更新的项。(我用它来同步浏览器的localStorage与实际数据)。嗯,它不工作,但我发现这是因为服务器和客户端之间的时差。
我在UTC/GMT +2小时,CEST(中欧夏令时)时区(这是javascript发送的)和GAE dev_appserver在GMT工作。补偿:
updated=((new Date().getTime() - 1000*60*60*2) / 1000)
解决了这个问题,但是硬编码它并不能解决不同时区的问题。那么,几个问题:
1)真正的GAE服务器的时区是什么?它是否与dev_appserver的相同?
2)我应该处理客户端或服务器上下文(javascript或python)的差异吗?
还有什么我应该知道的吗?(:
谢谢
这篇文章描述了一个解决方案:如何在Google App Engine中获取当前英国时间
Google App Engine总是使用UTC,所以你需要一个像pytz这样的库来调整你的偏好。
相关文章:
- 显示具有服务器端自动时间注销的同步倒计时计时器
- 同步客户端和服务器端时间
- 使用当前时间同步显示
- 通过JavaScript与NTP同步时间的精度很高
- 双向同步(解析时间依赖性)
- Node.js-同步操作中建议的最长时间
- 如何使用JavaScript从一些在线时间服务器上同步时间
- 进度条将javascript同步到服务器时间
- 如何在两个系统之间以毫秒精度同步时间
- TubePlayer插件视频当前时间与jquery ui滑块同步
- 客户机JSP页面上同步服务器时间的问题
- 启动Javascript的时间间隔是非同步的,每次运行三次后停止
- 在javascript中以良好的精度同步时间(>0.5s)(类似ntp)
- javascript和css的时间同步吗?
- 时间序列折线图与轴不同步
- 拉斐尔.js为什么这些圆圈与时间不同步
- 最好的方式做一个手表在javascript与服务器时间同步
- 画布动画与视频时间同步
- 加载和显示多个动画gif在同一时间(同步)与Javascript
- GAE,JavaScript日期时间同步