如何获得徽章奖励时间的时间戳?

Posted

技术标签:

【中文标题】如何获得徽章奖励时间的时间戳?【英文标题】:How to get the Timestamp of awarded time for badges? 【发布时间】:2018-10-22 20:05:06 【问题描述】:

用什么方法来计算授予用户徽章的时间?

我按照推荐的here 尝试了通知,但我得到了:

method not available

【问题讨论】:

【参考方案1】:

根据the linked answer 和the API docs,您无法直接从 API 获取徽章奖励时间。 要间接获得它们需要相当多的工作,这已经在该答案中进行了总结,而您没有这样做。此外,间接方法仅限于每个应用会话的单个登录用户。

也许更好的方法是使用数据资源管理器 (SEDE)。

这是获取用户徽章奖励次数的查询。 在 SEDE 上看到它的实际效果:data.stackexchange.com/***/query/851077/...

-- UserId: User ID     "Enter a user's ID."
SELECT      u.Id     AS [User Link]
            , CASE
                WHEN b.Tagbased = 1 THEN 'Tag: [' + b.Name + ']'
                ELSE b.Name
            END    AS [Badge name]
            , CASE
                WHEN b.Class = 1 THEN 'Gold'
                WHEN b.Class = 2 THEN 'Silver'
                WHEN b.Class = 3 THEN 'Bronze'
                ELSE '*Unkown*'
            END    AS [Class]
            , b.Date AS [Awarded]
FROM        Badges b
LEFT JOIN   Users u  ON u.Id = b.Userid
WHERE       b.Userid = ##UserId:int##
ORDER  BY   u.Displayname
            , [Awarded] DESC

它返回如下结果:

用户链接徽章名称等级授予 列纳克《编辑》《青铜》《2018-05-02 10:04:38》 列纳克《保管人》《青铜》《2018-05-02 09:49:36》 列纳克《同侪压力》《铜牌》《2018-04-26 22:18:46》 列纳克《知情》《青铜》《2018-04-26 20:38:26》

【讨论】:

以上是关于如何获得徽章奖励时间的时间戳?的主要内容,如果未能解决你的问题,请参考以下文章

php如何获得昨天23:59:59的时间戳

给定一个 Unix 时间戳,如何获得那一天的开始和结束?

检查 x 连续天 - 数据库中的给定时间戳

MySQL:如何在几秒钟内获得两个时间戳之间的差异

Android:从firebase获取当前日期和时间

如何实现时间戳转换