Facebook graph api 显示2小时前、4周前等时间创建的Facebook评论

Facebook graph api 显示2小时前、4周前等时间创建的Facebook评论,facebook-graph-api,timezone,facebook-comments,Facebook Graph Api,Timezone,Facebook Comments,我正在编写一个与Facebook Graph API交互的脚本。我成功地阅读了评论,唯一要添加的是以“2小时前”、“4周前”等格式显示创建的时间字段 以下是Facebook在阅读帖子评论时向我展示的内容(我使用的是{post\u id}/comments?access\u token={…}端点): 我不知道创建时间是如何计算的。我注意到用户配置文件(/me)有一个名为时区的字段,但我不确定这是否与时间有关。我想知道当一个用户从不同的时区发帖(例如旅行时)时会发生什么,他的时区会更新吗 顺便说一

我正在编写一个与Facebook Graph API交互的脚本。我成功地阅读了评论,唯一要添加的是以“2小时前”、“4周前”等格式显示创建的时间字段

以下是Facebook在阅读帖子评论时向我展示的内容(我使用的是{post\u id}/comments?access\u token={…}端点):

我不知道创建时间是如何计算的。我注意到用户配置文件(/me)有一个名为时区的字段,但我不确定这是否与时间有关。我想知道当一个用户从不同的时区发帖(例如旅行时)时会发生什么,他的时区会更新吗

顺便说一句,我不是问如何计算时差,我已经知道怎么做了。我只想知道评论的时区以及它是如何计算的,这样我就可以做出正确的时差

不确定它是否相关,但我正在使用NodeJS&the

谢谢


Alex查看一下,这是一个javascript日期库,提供了此功能以及更多功能。

因为该值包含
+0000
,您知道它已经被调整为零偏移量,这将使其等同于UTC。因此,不需要源时区

既然您说您使用的是moment.js,那么只需将整个值传递给矩构造函数,包括偏移量。它将自动读取并调整到本地时区

moment("2014-03-17T11:44:39+0000")
如果您不想进行调整,只需切换回UTC即可

moment("2014-03-17T11:44:39+0000").utc()
无论使用哪种方法,您都可以使用moment的
fromNow
函数来获取所需的字符串输出。如果您只需要调用
utc
函数,则无需调用该函数:

moment("2014-03-17T11:44:39+0000").fromNow()  // "2 hours ago" (or similar)
-

顺便说一下,
Z
+0000
之间的唯一区别是语义上的区别:

  • Z
    意味着该值以UTC为单位,无论是源自UTC还是已转换为UTC

  • +0000
    +00:00
    意味着该值取自当地时区,该时区在该时间点不偏离UTC,例如冬季的
    欧洲/伦敦
    ,或全年的
    大西洋/雷克雅未克

  • 如果您遵循,那么也有可能出现
    -00:00
    ,这意味着本地值未知,但该值被理解为UTC


然而,他们都提到了同一点,我怀疑Facebook是否试图暗示除了你应该将该值视为UTC之外的任何东西,所以我不担心它。;-)

我已经在使用Moment.js了,所以我说我知道如何计算时差。我的问题是评论的时区。
moment("2014-03-17T11:44:39+0000").fromNow()  // "2 hours ago" (or similar)