Xem ngày cam kết thực tế của Nhật Bản trong github (giờ / ngày)


160

Có cách nào để xem ngày của một cam kết trong github, với độ chính xác ngày / giờ không? Các cam kết cũ hơn xuất hiện ở định dạng "con người có thể đọc được", chẳng hạn như "2 năm trước" thay vì hiển thị ngày thực tế.

cam kết cũ

Nếu không thể xem ngày thực tế trên github, có cách giải quyết nào dễ hơn git clonekhông?

Câu trả lời:


301

Di chuột qua 2 years agovà bạn sẽ nhận được dấu thời gian.


32
Cảm ơn. Đó là "khả năng sử dụng"!
JD.

9
Giải pháp tương tự cho cách xem ngày trên StackOverflow. (Trên cùng bên phải, "đã hỏi 1 năm trước")
Greg

8
Cảm ơn. Nó là khá dễ dàng để bỏ lỡ. Không phải là giải pháp lý tưởng tôi nghĩ. ;-)
Nico

Tôi không biết bạn có thể làm điều này ... điều này đã giúp tôi ra ngoài. Nhưng tôi tự hỏi, có một lệnh git mà bạn có thể nhập sẽ hiển thị thông tin này nếu bạn chuyển vào hàm băm cam kết?
CF_HoneyBadger

12
Dễ bỏ lỡ. Họ không thể hiển thị ngày chính xác?
sudo

8

Ngày thực sự không xuất hiện đối với tôi khi di chuột "2 năm trước", mặc dù văn bản được bao bọc bởi một <time>yếu tố có giá trị iso dưới datetimethuộc tính của nó .

Nếu vẫn thất bại, giống như tôi đã làm, hãy thử kiểm tra văn bản.

Phần tử mẫu:

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


4
Không có gì để làm với yếu tố kết thúc hoặc thời gian của họ hoặc bất cứ điều gì như thế. Đó là bạn và trình duyệt của bạn. Một attr tiêu đề được hiển thị bởi các trình duyệt dưới dạng một chú giải công cụ khi bạn di chuột. Không js ưa thích, không css, không có gì. Một số người đã báo cáo sự cố với chrome và tiêu đề attr xem stackoverflow.com/questions/21314758/ nam stackoverflow.com/questions/10391327/
trộm

4

bạn chỉ có thể sử dụng bookmark js này:

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

Nó chỉ thêm thời gian chính xác: Như thế này: đã cam kết 21 giờ trước - 15 tháng 2 năm 2017, 15:49 MEZ


Bạn đã không làm việc cho tôi, vì vậy tôi đã viết nó và nó đã làm việc; +1 cho cảm hứngjavascript:(function() { var el = document.createElement('div'); document.body.prepend(el); el.innerHTML = document.getElementsByTagName('relative-time')[0].getAttribute('title');}() )
Coty phôi

2

Tôi đã thử tập lệnh TamperMonkey / Greasemonkey của @ odony trên Chrome nhưng không thể làm cho nó hoạt động được. detachCallback()không được công nhận. Vì vậy, thay vì tách bất kỳ cuộc gọi lại nào, tôi chỉ cần thay thế <relative-time>nút.

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

Xin lỗi tôi đã không thử nghiệm điều này với trình duyệt khác, nhưng vì đây là javascript cơ bản, nên nó chỉ hoạt động. :)


1

Nếu bạn đang tìm cách hiển thị ngày / giờ vĩnh viễn mà không cần di chuột (ví dụ: cho ảnh chụp màn hình), các giải pháp dựa trên Javascript ở trên không khớp với Github HTML mới nhất (xem bình luận). Và họ đã không tính đến thực tế là các dấu thời gian được tự động cập nhật dựa trên bộ hẹn giờ ( "X phút trước" phải thay đổi mỗi phút), vì vậy chúng sẽ xuất hiện lại theo định kỳ.

Kịch bản sau đây dường như hoạt động trên Github kể từ 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
    });
})();

Bạn có thể biến bookmarklet này bằng cách thêm tiền tố vào mã javascript:như trong giải pháp dựa trên JS khác.

Và nếu bạn muốn sửa lỗi này vĩnh viễn , bạn có thể lưu nó dưới dạng tập lệnh TamperMonkey / Greasemonkey, như sau:

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

Điều đó không đẹp lắm nhưng dường như để thực hiện công việc.


0

Với gitlab 10 tôi đã sử dụng điều này để thêm tiêu đề chú giải công cụ vào thành phần dưới dạng văn bản tiêu chuẩn:

javascript:(function() { 
  var relativeTimeElements = window.document.querySelectorAll("time");
  relativeTimeElements.forEach(function(timeElement){
    timeElement.innerHTML = timeElement.innerHTML +" -- "+ timeElement.getAttribute('data-original-title');
  })
}());
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.