【问题标题】:NSDate vs. UIWebView's Javascript Date objectNSDate 与 UIWebView 的 Javascript 日期对象
【发布时间】:2013-08-15 07:55:24
【问题描述】:

我运行了一个测试 [[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 同步时间的方法。有什么办法吗?

【问题讨论】:

    标签: ios objective-c date uiwebview nsdate


    【解决方案1】:

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

    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 秒..

    欲了解更多信息,请访问==>What are common pitfalls of timestamp based syncing?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-16
      • 2010-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多