请参阅 github 中的“真实”提交日期/时间(小时/天)

Posted

技术标签:

【中文标题】请参阅 github 中的“真实”提交日期/时间(小时/天)【英文标题】:See "real" commit date / time in github (hour/day) 【发布时间】:2013-12-28 07:41:44 【问题描述】:

有没有办法以天/小时的精度在 github 中查看提交日期?较早的提交以“人类可读”的格式显示,例如“2 年前”,而不是显示实际日期。

如果在 github 上看不到实际日期,有没有比git clone 更简单的解决方法?

【问题讨论】:

【参考方案1】:

将鼠标悬停在2 years ago 上,您将获得时间戳

【讨论】:

谢谢。这就是“可用性”! 关于如何在 *** 上查看日期的相同解决方案。 (右上角,“1 年前询问”) 谢谢。很容易错过。不是我认为的理想解决方案。 ;-) 很容易错过。他们不能只显示确切的日期吗? 当你找到这个答案并意识到你已经支持它的那一刻......【参考方案2】:

尽管文本被<time> 元素包裹,并且在其datetime 属性下具有iso 值,但我在悬停“2 年前”时并未显示真实日期。

如果一切都失败了,就像对我一样,请尝试检查文本。

示例元素:

<time datetime="2015-01-22T20:48:13Z" is="relative-time" title="Jan 22, 2015, 2:48 PM CST">7 days ago</time>

【讨论】:

与他们的结束或时间元素或类似的东西无关。是你和你的浏览器。当您悬停时,浏览器会将标题属性显示为工具提示。没有花哨的 js,没有 css,什么都没有。有些人报告了 chrome 和标题属性的问题,请参阅 ***.com/questions/21314758/… ***.com/questions/10391327/…【参考方案3】:

你可以使用这个 js 书签:

javascript:(function()  
        var relativeTimeElements = window.document.querySelectorAll("relative time");
        relativeTimeElements.forEach(function(timeElement)
        timeElement.innerhtml = timeElement.innerHTML +" -- "+ timeElement.title;
        )
    ()
)

https://gist.github.com/PhilippGrulich/7051832b344d4cbd30fbfd68524baa38

它只添加了正确的时间: 像这样: 21 小时前提交 -- 2017 年 2 月 15 日 15:49 MEZ

【讨论】:

你的对我不起作用,所以我写了这个并且它起作用了; +1 灵感javascript:(function() var el = document.createElement('div'); document.body.prepend(el); el.innerHTML = document.getElementsByTagName('relative-time')[0].getAttribute('title');() )【参考方案4】:

在 gitlab 10 中,我使用它来将工具提示标题作为标准文本添加到元素:

javascript:(function()  
  var relativeTimeElements = window.document.querySelectorAll("time");
  relativeTimeElements.forEach(function(timeElement)
    timeElement.innerHTML = timeElement.innerHTML +" -- "+ timeElement.getAttribute('data-original-title');
  )
());

【讨论】:

【参考方案5】:

如果您正在寻找一种无需悬停即可永久显示日期/时间的方法(例如屏幕截图),上述基于 Javascript 的解决方案与最新的 Github HTML 不匹配(请参阅 cmets)。而且他们没有考虑时间戳是基于计时器自动更新的事实(“X 分钟前” 必须每分钟更改一次),因此它们会定期重新出现。

截至 2020 年 1 月 27 日,以下脚本似乎可以在 Github 上运行:

(function() 
    var els = window.document.querySelectorAll("time-ago,relative-time");
    els.forEach(function(el) 
        el.innerHTML = "on " + el.getFormattedTitle(); // original timestamp
        el.disconnectedCallback(); // stop auto-updates
    );
)();

您可以通过在代码前面加上 javascript: 前缀来将其设为书签,就像在其他基于 JS 的解决方案中一样。

如果您想将此永久修复,您可以将其保存为 TamperMonkey/Greasemonkey 脚本,如下所示:

// ==UserScript==
// @name         Github: always show absolute times
// @match        https://github.com/*
// ==/UserScript==

(function() 
    setTimeout(function() 
        var els = window.document.querySelectorAll("time-ago,relative-time");
        els.forEach(function(el) 
            el.innerHTML += ' <span class="text-small">(' + el.title + ')</span>'; // set original timestamp
            el.disconnectedCallback(); // stop auto-updates
        );
    , 100); // YMMV, experiment with the timeout
)();

这不是很漂亮,但它似乎完成了这项工作。

【讨论】:

喜欢您将其作为 tampermonkey/greasemonkey 脚本包含在内,这使这更像是一个实际的解决方案【参考方案6】:

我在 Chrome 上尝试了 @odony 的 TamperMonkey/Greasemonkey 脚本,但无法正常工作。 detachCallback() 未被识别。因此,我没有分离任何回调,而是简单地替换了&lt;relative-time&gt; 节点。

// ==UserScript==
// @name         Github: always show absolute times
// @match        https://github.com/*
// ==/UserScript==

(function() 
    document.querySelectorAll("relative-time").forEach(function(el) 
        var parent = el.parentNode;
        var timestamp = el.title;
        var span = document.createElement("span");
        span.innerHTML = timestamp;
        parent.removeChild(el);
        parent.appendChild(span);
    );
)();

抱歉,我还没有在其他浏览器上测试过,但由于这是基本的 javascript,它应该可以工作。 :)

【讨论】:

【参考方案7】:

使用用户样式表插件(我在 chrome 中使用 stylebot)

time 
  font-size: 0;

time:after 
    content: attr(data-original-title);
    font-size: 14px;

【讨论】:

【参考方案8】:

2021 年更新:小书签仍然是 GitHub 上的唯一选择。 参见例如来自Justin Noel的“Displaying Real Commit Times in GitHub”

javascript:(function()     
  var style = document.createElement('style');
  document.head.appendChild(style);
  var sheet = style.sheet;
  sheet.addRule('time-ago:before,relative-time:before', 'content: attr(title);display: block;font-size: 0.5rem;');  
)()


这与GitLab 14.1(2021 年 7 月)形成鲜明对比

显示绝对时间的用户设置

GitLab 在很多地方显示相对时间(例如,30 分钟前)。

您现在可以更改您的用户个人资料偏好以显示绝对时间,例如,“May 18, 2021, 3:57 PM

绝对时间尊重您的浏览器设置,并根据您的首选语言环境设置日期和时间格式,例如,英式英语优于美式英语。

这个新的显示选项让需要它的用户一目了然地了解更多信息,以便将 GitLab 中的操作与外部系统相关联等工作流。

请参阅 Documentation 和 Issue。

【讨论】:

嗨,这对我有用!谢谢

以上是关于请参阅 github 中的“真实”提交日期/时间(小时/天)的主要内容,如果未能解决你的问题,请参考以下文章

更改 git 标签的日期(或基于它的 GitHub Release)

在 Graphview 库中使用日期

javascript Array.from polyfill(另请参阅https://github.com/mathiasbynens/Array.from)

golang 命令行上的双因素身份验证。请参阅https://github.com/rsc/2fa

java 在RTL轮播中使用时修复https://github.com/rubensousa/RecyclerViewSnap/。请参阅https://github.com/rubensousa/Re

java 在RTL轮播中使用时修复https://github.com/rubensousa/RecyclerViewSnap/。请参阅https://github.com/rubensousa/Re