Is there a way to see the date of a commit in github, with day/hour precision? Older commits appear in a \"human readable\" format, such as \"2 years ago\" instead of showing th
If you're looking for a way to display the date/time permanently without hovering (e.g. for screenshots), the above Javascript-based solutions do not match the latest Github HTML (see comments). And they did not take into account the fact that the timestamps are auto-updated based on a timer ("X minutes ago" has to change every minute), so they will periodically reappear.
The following script seems to work on Github as of 2020-01-27:
(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
});
})();
You can make this a bookmarklet by prefixing the code with javascript:
as in the other JS-based solution.
And if you want to make this a permanent fix, you can save this as a TamperMonkey/Greasemonkey script, as follows:
// ==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
})();
That's not very pretty but it seems to do the job.
The real date does not appear for me upon hovering "2 years ago", despite the text being wrapped by a <time>
element with an iso value under its datetime
attribute.
If all else fails, like it did for me, try inspecting the text.
Sample element:
<time datetime="2015-01-22T20:48:13Z" is="relative-time" title="Jan 22, 2015, 2:48 PM CST">7 days ago</time>
Hover your mouse over the 2 years ago
and you'll get the timestamp.
you can just use this js bookmark:
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
It adds just the correct time: Like this: committed 21 hours ago -- 15. Feb. 2017, 15:49 MEZ
With a user stylesheet plugin (I'm using stylebot in chrome)
time {
font-size: 0;
}
time:after {
content: attr(data-original-title);
font-size: 14px;
}
I tried @odony's TamperMonkey/Greasemonkey script on Chrome but couldn't get it to work. detachCallback()
wasn't recognized. So instead of detaching any callbacks, I simply replaced the <relative-time>
node.
// ==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);
});
})();
Sorry I haven't tested this with other browser, but since this is basic javascript, it should just work. :)