在github中查看“实际”提交日期(小时/天)


161

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

旧的github提交

如果无法在github上看到实际日期,是否有比这里更简单的解决方法git clone

Answers:


302

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


32
谢谢。那就是“可用性”!
京东。

9
关于如何在StackOverflow上查看日期的相同解决方案。(右上角,“问问1年前”)
Greg

8
谢谢。很容易错过。我认为不是理想的解决方案。;-)
Nico

我不知道你能做到这一点...这帮助了我。但是我想知道,如果您传入了提交哈希,是否可以输入一个git命令来显示此信息?
CF_HoneyBadger 2015年

12
容易错过。他们不能只显示确切日期吗?
sudo 2015年

9

尽管文本由属性<time>下带有iso值的元素包裹,但在“ 2年前”悬停时,真实日期不会出现datetime

如果所有其他方法都失败了,就像对我一样,请尝试检查文本。

样本元素:

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


4
与他们的结束时间或时间元素无关。是您和您的浏览器。当您将鼠标悬停时,浏览器会显示标题属性。没有花哨的js,没有CSS,什么也没有。有些人报告了镀铬和标题ATTR看问题stackoverflow.com/questions/21314758/... stackoverflow.com/questions/10391327/...
dalore

4

您可以只使用以下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日,MEZ


你的不是为我工作的,所以我写了这个,它就起作用了。+1的灵感javascript:(function() { var el = document.createElement('div'); document.body.prepend(el); el.innerHTML = document.getElementsByTagName('relative-time')[0].getAttribute('title');}() )
Coty Embry

2

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

// ==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,因此应该可以正常工作。:)


1

如果您正在寻找一种无需悬停即可永久显示日期/时间的方法(例如,用于屏幕截图),则上述基于Javascript的解决方案与最新的Github HTML不匹配(请参见注释)。而且他们没有考虑到时间戳是根据计时器自动更新的事实(“ 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
    });
})();

您可以像在其他基于JS的解决方案中那样在代码前面加上前缀,从而使它成为书签javascript:

并且,如果您想将此永久性修复,则可以将其另存为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
})();

那不是很漂亮,但似乎可以完成工作。


0

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

javascript:(function() { 
  var relativeTimeElements = window.document.querySelectorAll("time");
  relativeTimeElements.forEach(function(timeElement){
    timeElement.innerHTML = timeElement.innerHTML +" -- "+ timeElement.getAttribute('data-original-title');
  })
}());
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.