Zobacz „rzeczywistą” datę zatwierdzenia na githubie (godzina / dzień)

161

Czy istnieje sposób, aby zobaczyć datę zatwierdzenia na githubie z dokładnością do dnia / godziny? Starsze zatwierdzenia pojawiają się w formacie „czytelnym dla człowieka”, na przykład „2 lata temu”, zamiast pokazywać rzeczywistą datę.

stary github commit

Jeśli nie można zobaczyć rzeczywistej daty na githubie, czy istnieje łatwiejsze obejście niż git clone?

goncalopp
źródło

Odpowiedzi:

302

Najedź myszą na ikonę, 2 years agoa otrzymasz sygnaturę czasową.

Matt S.
źródło
32
Dzięki. To jest „użyteczność”!
JD.
9
To samo rozwiązanie, jak wyświetlić datę w StackOverflow. (U góry po prawej „zapytano 1 rok temu”)
Greg
8
Dzięki. Dość łatwo to przeoczyć. Myślę, że nie jest to idealne rozwiązanie. ;-)
Nico
Nie miałem pojęcia, że ​​potrafisz to zrobić ... to mi pomogło. Ale zastanawiam się, czy istnieje polecenie git, które możesz wprowadzić, które wyświetli te informacje, jeśli przekażesz skrót zatwierdzenia?
CF_HoneyBadger
12
Łatwo przeoczyć. Czy nie mogliby po prostu pokazać dokładnej daty?
sudo
9

Prawdziwa data nie pojawia się po najechaniu kursorem „2 lata temu”, mimo że tekst jest zawinięty w <time>element z wartością iso pod datetimeatrybutem.

Jeśli wszystko inne zawiedzie, tak jak w przypadku mnie, spróbuj sprawdzić tekst.

Przykładowy element:

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

Walter Roman
źródło
4
Nie ma nic wspólnego z ich elementem końcowym lub czasowym ani z niczym w tym rodzaju. To Ty i Twoja przeglądarka. Atrybut tytułu jest wyświetlany przez przeglądarki jako podpowiedź po najechaniu kursorem. Bez wyszukanego js, ​​bez css, nic. Niektóre osoby zgłosiły problemy z chromem i
atrybutem
4

możesz po prostu użyć tej zakładki 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

Dodaje tylko prawidłowy czas: Tak: popełniono 21 godzin temu - 15 lutego 2017 r., 15:49 MEZ

Philipp Grulich
źródło
Twój nie zadziałał dla mnie, więc napisałem to i zadziałało; +1 za inspiracjęjavascript:(function() { var el = document.createElement('div'); document.body.prepend(el); el.innerHTML = document.getElementsByTagName('relative-time')[0].getAttribute('title');}() )
Coty Embry
2

Wypróbowałem skrypt @ odony TamperMonkey / Greasemonkey na Chrome, ale nie mogłem go uruchomić. detachCallback()nie został rozpoznany. Więc zamiast odłączać wszelkie wywołania zwrotne, po prostu wymieniłem <relative-time>węzeł.

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

Przepraszam, nie testowałem tego z inną przeglądarką, ale ponieważ jest to podstawowy javascript, powinno po prostu działać. :)

Pan T.
źródło
1

Jeśli szukasz sposobu na trwałe wyświetlanie daty / czasu bez najechania kursorem (np. W przypadku zrzutów ekranu), powyższe rozwiązania oparte na Javascript nie są zgodne z najnowszym kodem HTML Github (patrz komentarze). I nie wzięli pod uwagę faktu, że znaczniki czasu są automatycznie aktualizowane na podstawie licznika czasu ( „X minut temu” musi się zmieniać co minutę), więc będą się okresowo pojawiać ponownie.

Poniższy skrypt wydaje się działać na Github od 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
    });
})();

Możesz uczynić to bookmarkletem , poprzedzając kod prefiksem, tak javascript:jak w innym rozwiązaniu opartym na JS.

A jeśli chcesz to naprawić na stałe , możesz zapisać to jako skrypt TamperMonkey / Greasemonkey w następujący sposób:

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

To niezbyt ładne, ale wydaje się, że spełnia swoje zadanie.

odonia
źródło
0

W gitlab 10 użyłem tego, aby dodać tytuł podpowiedzi do elementu jako standardowy tekst:

javascript:(function() { 
  var relativeTimeElements = window.document.querySelectorAll("time");
  relativeTimeElements.forEach(function(timeElement){
    timeElement.innerHTML = timeElement.innerHTML +" -- "+ timeElement.getAttribute('data-original-title');
  })
}());
Xeno
źródło