Voir la date de validation "réelle" dans github (heure / jour)

161

Existe-t-il un moyen de voir la date d'un commit dans github, avec une précision jour / heure? Les commits plus anciens apparaissent dans un format "lisible par l'homme", tel que "il y a 2 ans" au lieu d'afficher la date réelle.

ancien commit github

S'il n'est pas possible de voir la date réelle sur github, existe-t-il une solution de contournement plus simple que git clone?

Goncalopp
la source

Réponses:

302

Passez votre souris sur le 2 years agoet vous obtiendrez l'horodatage.

Matt S.
la source
32
Merci. C'est "utilisabilité"!
JD.
9
Même solution pour savoir comment voir la date sur StackOverflow. (En haut à droite, "demandé il y a 1 an")
Greg
8
Merci. C'est assez facile à rater. Pas la solution idéale je pense. ;-)
Nico
Je ne savais pas que tu pouvais faire ça ... ça m'a aidé. Mais je me demande, y a-t-il une commande git que vous pouvez entrer qui affichera ces informations si vous passez le hachage de validation?
CF_HoneyBadger
12
Facile à manquer. Ne pourraient-ils pas simplement indiquer la date exacte?
sudo
9

La date réelle n'apparaît pas pour moi en survolant "il y a 2 ans", bien que le texte soit enveloppé par un <time>élément avec une valeur iso sous son datetimeattribut.

Si tout le reste échoue, comme cela a été le cas pour moi, essayez d'inspecter le texte.

Élément d'échantillon:

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

Walter Roman
la source
4
N'a rien à voir avec leur élément de fin ou de temps ou quelque chose comme ça. C'est vous et votre navigateur. Un titre attr est affiché par les navigateurs sous forme d'infobulle lorsque vous survolez. Pas de js fantaisie, pas de css, rien. Certaines personnes ont signalé des problèmes avec le chrome et le titre attr voir stackoverflow.com/questions/21314758/... stackoverflow.com/questions/10391327/...
dalore
4

vous pouvez simplement utiliser ce signet 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

Il ajoute juste le bon moment: comme ceci: commis il y a 21 heures - 15 février 2017, 15:49 MEZ

Philipp Grulich
la source
Le vôtre n'a pas fonctionné pour moi, alors j'ai écrit ceci et cela a fonctionné; +1 pour l'inspirationjavascript:(function() { var el = document.createElement('div'); document.body.prepend(el); el.innerHTML = document.getElementsByTagName('relative-time')[0].getAttribute('title');}() )
Coty Embry
2

J'ai essayé le script TamperMonkey / Greasemonkey de @ odony sur Chrome mais je n'ai pas pu le faire fonctionner. detachCallback()n'a pas été reconnu. Donc, au lieu de détacher les rappels, j'ai simplement remplacé le <relative-time>nœud.

// ==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);
    });
})();

Désolé, je n'ai pas testé cela avec un autre navigateur, mais comme il s'agit de javascript de base, cela devrait fonctionner. :)

M. T
la source
1

Si vous cherchez un moyen d'afficher la date / l'heure en permanence sans survoler (par exemple pour les captures d'écran), les solutions JavaScript ci-dessus ne correspondent pas au dernier HTML de Github (voir les commentaires). Et ils n'ont pas pris en compte le fait que les horodatages sont mis à jour automatiquement en fonction d'une minuterie ( «il y a X minutes» doit changer toutes les minutes), ils réapparaissent donc périodiquement.

Le script suivant semble fonctionner sur Github à partir du 27/01/2020:

(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
    });
})();

Vous pouvez en faire un bookmarklet en préfixant le code avec javascript:comme dans l'autre solution basée sur JS.

Et si vous souhaitez en faire un correctif permanent , vous pouvez l'enregistrer en tant que script TamperMonkey / Greasemonkey, comme suit:

// ==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
})();

Ce n'est pas très joli mais cela semble faire le travail.

odony
la source
0

Avec gitlab 10, j'ai utilisé ceci pour ajouter le titre de l'infobulle à l'élément en tant que texte standard:

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