Смотрите «реальную» дату фиксации в github (час / день)


161

Есть ли способ увидеть дату коммита в github с точностью до дня / часа? Старые коммиты отображаются в «удобочитаемом» формате, например, «2 года назад», вместо отображения фактической даты.

старый github коммит

Если невозможно увидеть фактическую дату на github, есть ли более простой обходной путь, чем git clone?

Ответы:


302

Наведите указатель мыши на, 2 years agoи вы получите метку времени.


32
Спасибо. Это "юзабилити"!
JD.

9
То же решение для того, чтобы увидеть дату на StackOverflow. (Вверху справа, "спросил 1 год назад")
Грег

8
Спасибо. Это довольно легко пропустить. Я думаю, что это не идеальное решение. ;-)
Нико

Я понятия не имел, что ты можешь сделать это ... это помогло мне. Но мне интересно, есть ли команда git, которую вы можете ввести, которая отобразит эту информацию, если вы передадите хеш коммита?
CF_HoneyBadger

12
Легко пропустить. Разве они не могли просто показать точную дату?
Судо

9

Реальная дата не отображается для меня при наведении курсора «2 года назад», несмотря на то, что текст оборачивается <time>элементом со значением iso под его datetimeатрибутом.

Если ничего не помогает, как это было для меня, попробуйте проверить текст.

Пример элемента:

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


4
Не имеет ничего общего с их элементом конца или времени или чем-то подобным. Это ты и твой браузер. Атрибут заголовка отображается браузерами в виде всплывающей подсказки при наведении курсора. Нет фантазии, нет CSS, ничего. Некоторые люди сообщили о проблемах с хромом и название атр см stackoverflow.com/questions/21314758/... stackoverflow.com/questions/10391327/...
dalore

4

Вы можете просто использовать эту закладку 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 час назад - 15. Фев 2017, 15:49 MEZ


Ваш не работал для меня, поэтому я написал это, и это сработало; +1 за вдохновениеjavascript:(function() { var el = document.createElement('div'); document.body.prepend(el); el.innerHTML = document.getElementsByTagName('relative-time')[0].getAttribute('title');}() )
Коти Эмбри

2

Я попробовал сценарий @ odony's TamperMonkey / Greasemonkey в Chrome, но не смог заставить его работать. 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, он должен просто работать. :)


1

Если вы ищете способ постоянного отображения даты / времени без зависания (например, для снимков экрана), приведенные выше решения на основе Javascript не соответствуют последней версии Github HTML (см. Комментарии). И они не приняли во внимание тот факт, что временные метки автоматически обновляются на основе таймера ( «X минут назад» должен меняться каждую минуту), поэтому они будут периодически появляться.

Следующий скрипт работает на Github с 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
    });
})();

Вы можете сделать это букмарклетом , добавив к нему префикс, javascript:как в другом решении на основе JS.

И если вы хотите сделать это постоянным исправлением, вы можете сохранить его как скрипт 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
})();

Это не очень красиво, но похоже, что делает работу.


0

С gitlab 10 я использовал это, чтобы добавить заголовок всплывающей подсказки к элементу как стандартный текст:

javascript:(function() { 
  var relativeTimeElements = window.document.querySelectorAll("time");
  relativeTimeElements.forEach(function(timeElement){
    timeElement.innerHTML = timeElement.innerHTML +" -- "+ timeElement.getAttribute('data-original-title');
  })
}());
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.