0

我运行了一个测试 [[NSDate date] timeIntervalSince1970] 与打印出 UIWebView 的 Date().getTime(),它们似乎有几秒钟的时间。最初我认为这是因为我在主线程上都打印,但这不应该导致几秒钟的延迟吗?如果有帮助,这是我的测试代码。

- (void)viewDidLoad
{
    [NSTimer scheduledTimerWithTimeInterval:0.0001 target:self selector:@selector(debugTime) userInfo:nil repeats:YES];
    [super viewDidLoad];
}
- (void)debugTime
{
    NSLog(@"%1.6f", [[NSDate date] timeIntervalSince1970]);
}

UIWebView 使用以下代码加载本地 HTML 文件:

$(window).load(function () {
    window.setInterval("time()",1/100000);
});
function time() {
    var d = new Date();
    console.log(d.getTime()/1000);
}

我通过 Safari 的 Web Inspector 检查控制台。

iOS 打印:1376552964.625462

Javascript 打印:1376552967.63

我需要一种通过本机 Objective-C 和 UIWebView 同步时间的方法。有什么办法可以做到这一点?

4

1 回答 1

0

我尝试将您的两个时间戳字符串都转换为日期。

iOS 打印==>2013-08-15 07:49:24 +0000

Javascript打印==> 2013-08-15 07:49:27 +0000

使用代码,

NSString * timeStampString = @"1376552967.63";
NSTimeInterval _interval=[timeStampString doubleValue];
NSDate *date = [NSDate dateWithTimeIntervalSince1970:_interval];
NSLog(@"%@", date);

我怀疑这是因为 webview 加载页面和执行 javascript 日期函数所花费的时间。我之所以这么说是因为,两者(iOS 和 javascript)之间的时间差仅为 3 秒。

有关更多信息,请访问==>基于时间戳的同步的常见缺陷是什么?

于 2013-08-15T08:09:56.360 回答