2017-08-14 17 views
-1

我想要获取消息在用户本地时区或他/她当地时区发送的日期时间。我如何获得本地时区我的Messenger软件用户?

如何从我的机器人中获取? Facebook给出了时间戳,但我怀疑该时间戳是基于用户的本地时区计算的。

+0

我不知道谁投下了这个票,但在投票之前我认为这将是更好的计算器来问问他为什么他会投票。这也可以帮助发布问题的人。我真的需要关于如何获得我的bot用户的真正时区的指导。 – aidonsnous

回答

1

The documentation给出了这样的例子:

{ 
    "sender":{ 
    "id":"USER_ID" 
    }, 
    "recipient":{ 
    "id":"PAGE_ID" 
    }, 
    "timestamp":1458692752478, 
    "message":{ 
    "mid":"mid.1457764197618:41d102a3e1ae206a38", 
    "text":"hello, world!", 
    "quick_reply": { 
     "payload": "DEVELOPER_DEFINED_PAYLOAD" 
    } 
    } 
}  

在这个例子中的timestamp字段是以毫秒为单位换算的Unix timestamp。根据Coordinated Universal Time (UTC),Unix时间戳记总是。换句话说,时代参考点是1970年1月1日,00:00:00.000 UTC

因此,时区与邮件正文无关。当显示消息时,您应该简单地从UTC转换到所需的时区(可能是用户的本地时区)。

+0

谢谢,我怎样才能得到用户的时区(每当他/她使用机器人时都是可靠的时区:如果他在非洲+03:00并移动到美国,时区必须自动更改)?从utc转换到用户时区将是危险的操作,因为我不知道facebook是否将用户时区的发送日期时间转换为UTC,或者只是在发送该unix时间戳前直接使用UTC。发生事件 – aidonsnous

+1

。捕获时间戳(采用UTC)。没有别的了。即使Facebook以本地时间值开始并将其转换(这将是荒谬的),但API仍然会为您提供基于UTC的结果。你可以指望。这里没有危险。 –

+1

现在,如果*你*是根据当地时间捕获输入,那么是的 - 当然你需要知道输入是在什么时区。然后在比较之前,你会将它转换为UTC。 –

相关问题