See "real" commit date / time in github (hour/day)
GitDateGithubCommitGit Problem Overview
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 the actual date.
If it's not possible to see the actual date on github, is there a easier workaround than git clone
?
Git Solutions
Solution 1 - Git
Hover your mouse over the 2 years ago
and you'll get the timestamp.
Solution 2 - Git
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>
Solution 3 - Git
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
Solution 4 - Git
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.
Solution 5 - Git
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. :)
Solution 6 - Git
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;
}
Solution 7 - Git
Update 2021: a bookmarklet remains the only option on GitHub.
See for instance "Displaying Real Commit Times in GitHub" from Justin Noel
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;');
})()
This contrasts with GitLab 14.1 (July 2021)
> ## User setting to display absolute times
>
> GitLab displays relative times (for example, 30 minutes ago) in a lot of places.
>
> You can now change your user profile preferences to display absolute times instead, for example, ‘May 18, 2021, 3:57 PM
’.
>
> Absolute times respect your browser settings and format dates and times based on your preferred locales, for example, British English over US English.
>
> This new display option gives more information at a glance for users that need it for workflows like correlating actions in GitLab to external systems.
>
>
>
> See Documentation and Issue.
Solution 8 - Git
With gitlab 10 I used this to add the tooltip title to the element as standard text:
javascript:(function() {
var relativeTimeElements = window.document.querySelectorAll("time");
relativeTimeElements.forEach(function(timeElement){
timeElement.innerHTML = timeElement.innerHTML +" -- "+ timeElement.getAttribute('data-original-title');
})
}());