我想要获取消息在用户本地时区或他/她当地时区发送的日期时间。我如何获得本地时区我的Messenger软件用户?
如何从我的机器人中获取? Facebook给出了时间戳,但我怀疑该时间戳是基于用户的本地时区计算的。
我想要获取消息在用户本地时区或他/她当地时区发送的日期时间。我如何获得本地时区我的Messenger软件用户?
如何从我的机器人中获取? Facebook给出了时间戳,但我怀疑该时间戳是基于用户的本地时区计算的。
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转换到所需的时区(可能是用户的本地时区)。
谢谢,我怎样才能得到用户的时区(每当他/她使用机器人时都是可靠的时区:如果他在非洲+03:00并移动到美国,时区必须自动更改)?从utc转换到用户时区将是危险的操作,因为我不知道facebook是否将用户时区的发送日期时间转换为UTC,或者只是在发送该unix时间戳前直接使用UTC。发生事件 – aidonsnous
。捕获时间戳(采用UTC)。没有别的了。即使Facebook以本地时间值开始并将其转换(这将是荒谬的),但API仍然会为您提供基于UTC的结果。你可以指望。这里没有危险。 –
现在,如果*你*是根据当地时间捕获输入,那么是的 - 当然你需要知道输入是在什么时区。然后在比较之前,你会将它转换为UTC。 –
我不知道谁投下了这个票,但在投票之前我认为这将是更好的计算器来问问他为什么他会投票。这也可以帮助发布问题的人。我真的需要关于如何获得我的bot用户的真正时区的指导。 – aidonsnous