0

在 PHP 后端和 iOS 之间共享日期的最佳方式是什么?

两者都使用纪元时间戳是否安全?还是会因时区而异?

4

5 回答 5

1

您可以使用 unix 时间戳,但让服务器将其设为 UTC 时间,并让应用程序将其读取为 UTC 时间戳。然后您可以在应用程序本地执行时区以显示正确的时间。

于 2013-11-08T13:49:31.593 回答
0

如果您询问日期格式,您可能希望使用RFC 3339 / ISO 8601日期格式,其中今天,在纽约市上午 8:51:23.632,表示为2013-13-08T15:51:23.632Z(时间已转换为“zulu”(格林威治标准时间))。

NSDate *date = [NSDate date];
NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.locale = enUSPOSIXLocale;
formatter.dateFormat = @"yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'SSS'Z'";
formatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];
NSString *dateString = [formatter stringFromDate:date];
NSLog(@"%@", dateString);

如果您谈论的是日期时间戳的内容,请始终警惕在服务器代码中使用设备时间戳。如果这是一个真正的事务处理系统,您需要确保您拥有一个时间戳的“所有者”。例如,当向服务器发布更新时,我可能会保留用户的时间戳以供参考,但我会使用服务器自己在内部数据库中生成的时间戳,使用服务器自己的时钟,而不依赖于提供的时间戳客户。

于 2013-11-08T13:59:16.327 回答
0

不仅仅是日期,如果您找到 SOAP 或 RabittMQ 等解决方案,您可以在多个平台上的应用程序之间共享任何类型的数据。

于 2013-11-08T13:44:26.263 回答
0

为什么不使用创建的协议来同步时间 (NTP)?

http://sv.wikipedia.org/wiki/Network_Time_Protocol

请参阅:适用 于 ios 库的 iPhone 网络时间协议

于 2013-11-08T13:46:18.817 回答
0

对于传输“日期”或“时间戳”,您可以查看RFC 3339,它描述了在 Internet 上表示“时间戳”的首选格式。

于 2013-11-08T13:48:53.593 回答