0

我正在尝试使用 PhoneGap 创建一个移动应用程序。我需要应用程序在断开连接模式下工作。所以我在本地存储数据,当连接变为在线时,我将其与远程数据同步。要执行远程同步,我需要将 lastmodified 日期传递给服务器,以便它知道将哪些更新推送到客户端。问题是服务器时间和客户端时间不同。事实是服务器日期,所以我需要能够以某种方式在服务器上解释客户端日期以与服务器日期一致或从客户端传递服务器数学日期。关于如何做的任何建议?我正在考虑使用

(new Date()).getTimezoneOffset() 

来自javascript并基于此调整客户端日期。但这在日光节约方面存在问题。有什么建议么?服务器是一个 ASP.NET MVC 4 站点

4

1 回答 1

1

如果有多个客户端在多个时区运行,您可以做的一个技巧是计算服务器和客户端之间的时间差,并在查询服务器时应用它。以下是步骤

  1. 客户端在上午 10 点从服务器下载数据(与客户端一样)
  2. 客户端存储上次下载时间
  3. 客户端下线
  4. 客户在下午 1.30 上线,并决定现在是与服务器同步的好时机
  5. 客户端向服务器询问当前时间,服务器回复其 2.45pm
  6. 现在客户端知道它和服务器之间的时间差是1小时15分钟
  7. 客户端将此 1 小时和 15 分钟的增量应用于上次下载时间(步骤 2),并要求服务器发送自服务器时间上午 11.15 起的任何更新

请记住,您必须为每个事务(同步操作)计算应用增量,因为客户端可能在两次同步操作期间跨越时区

可能还有其他很酷的解决方案,但这是一个简单的解决方案。

干杯

于 2013-02-26T05:15:12.037 回答