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

161

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

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

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

goncalopp
источник

Ответы:

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

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

odony
источник
0

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

javascript:(function() { 
  var relativeTimeElements = window.document.querySelectorAll("time");
  relativeTimeElements.forEach(function(timeElement){
    timeElement.innerHTML = timeElement.innerHTML +" -- "+ timeElement.getAttribute('data-original-title');
  })
}());
Xeno
источник