Answers:
将鼠标悬停在上2 years ago
,您将获得时间戳记。
尽管文本由属性<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>
您可以只使用以下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
javascript:(function() { var el = document.createElement('div'); document.body.prepend(el); el.innerHTML = document.getElementsByTagName('relative-time')[0].getAttribute('title');}() )
我在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,因此应该可以正常工作。:)
如果您正在寻找一种无需悬停即可永久显示日期/时间的方法(例如,用于屏幕截图),则上述基于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
})();
那不是很漂亮,但似乎可以完成工作。
在gitlab 10中,我用它来将工具提示标题作为标准文本添加到元素中:
javascript:(function() {
var relativeTimeElements = window.document.querySelectorAll("time");
relativeTimeElements.forEach(function(timeElement){
timeElement.innerHTML = timeElement.innerHTML +" -- "+ timeElement.getAttribute('data-original-title');
})
}());