Thay đổi định dạng ngày của Gmail thành ISO 8601 (nghĩa là yyyy-mm-dd)


18

Có cách nào để thay đổi định dạng ngày của Gmail thành ISO 8601 (nghĩa là yyyy-mm-dd) không?

Thay vì :

nhập mô tả hình ảnh ở đây

Câu trả lời:


9

Tôi không thấy một cách tích hợp để chuyển đổi sang định dạng ISO, nhưng tôi đã viết một UserScript cho việc này. Đã thử nghiệm trong Chrome với Tampermonkey. Nếu Tampermonkey được cài đặt, nhấp vào nút Raw trong Github sẽ nhắc cài đặt tập lệnh.

Bạn không yêu cầu thay đổi định dạng thời gian, vì vậy tôi giữ nguyên như vậy đối với các email ngày nay:

ngày

Bao gồm cả kịch bản ở đây cho đầy đủ. (đã thêm ký tự đại diện vào URL)

// ==UserScript==
// @name         ISO date format in Gmail
// @namespace    https://github.com/normalhuman/
// @version      16.2.1
// @description  Change Gmail date format to ISO 8601, per http://webapps.stackexchange.com/q/89499
// @author       Normal Human
// @match        http*://mail.google.com/mail/u/0/*
// @grant        none
// @run-at       document-idle
// ==/UserScript==
/* jshint -W097 */
'use strict';

window.setInterval(toISO, 500);

function toISO() {
  var rows = document.getElementsByTagName('tr');
  for (var i = 0; i < rows.length; i++) {
    var rowElements = rows[i].children;
    if (rowElements.length == 8) {
      var timestamp = rowElements[7].firstElementChild;
      if (!/:/.test(timestamp.textContent)) {
        var parts = timestamp.title.split(/, | | at /);
        if (parts.length == 7) {
          var month = 1 + ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'].indexOf(parts[1]);
          timestamp.textContent = parts[3] + '-' + ('0' + month).slice(-2) + '-' + ('0' + parts[2]).slice(-2);
        }
      }
    }
  }
}

Lưu ý rằng bạn cũng cần đặt Ngôn ngữ Gmail thành "Tiếng Anh (Hoa Kỳ)" trong menu Cài đặt / Chung để phiên bản tập lệnh này hoạt động (kể từ hôm nay 2017-10-25). Nó sẽ không hoạt động với "Tiếng Anh (Anh)".
lau

10

Điều này được kiểm soát độc quyền thông qua các thiết lập ngôn ngữ.

Với ngôn ngữ của tôi được đặt thành tiếng Anh (Hoa Kỳ), ngày trong danh sách cuộc trò chuyện ở dạng Mmm d , với ngày tháng năm ngoái và trước đó ở dạng mm / dd / yyyy .

Khi đổi thành tiếng Anh (Vương quốc Anh), các hình thức thay đổi thành d Mmmdd / mm / yyyy tương ứng.

Không có tùy chọn khác cho tiếng Anh trong Gmail. Khi đổi thành tiếng Pháp, về cơ bản nó cũng có phong cách giống như tiếng Anh Anh (nhưng rõ ràng là tiếng Pháp, mà tôi không nói hoặc đọc).

Không có cài đặt nào khác để bản địa hóa trong Gmail và không có cách nào để chọn định dạng ngày độc lập với ngôn ngữ. Có vẻ như sự lựa chọn duy nhất của bạn tại thời điểm này là sử dụng một cái gì đó giống như bản mô tả người dùng được đề xuất bởi tên họ luôn thay đổi .


Kể từ khi thay đổi giao diện người dùng giữa năm 2018, đối với những ngày chỉ có số lượng, chúng tôi hiện có m / d / yy bằng tiếng Anh (Hoa Kỳ), dd / mm / yyyy bằng tiếng Anh (Anh) và Français và yy-mm-dd ở Français ( Canada). Đây thực sự không phải là ISO 8601.
Mathieu K.

1

Kịch bản gốc của: user79865

  1. Đã thay thế @match bằng @include để tương thích tốt hơn với Opera + Violentmonkey.
  2. Tăng khoảng thời gian đầy đủ đến 1 giây.
  3. Đã sửa lỗi hiển thị thời gian từ 12 đến 24 giờ nhưng vẫn giữ nguyên AM / PM vì lý do ngoại giao :)

Kịch bản làm việc dưới đây:

// ==UserScript==
// @name         ISO date format in Gmail
// @namespace    https://github.com/normalhuman/
// @version      16.2.2
// @description  Change Gmail date format to ISO 8601, per /webapps//q/89499
// @author       Normal Human
// @include      http*://mail.google.com/mail/u/0/*
// @grant        none
// @run-at       document-idle
// ==/UserScript==
/* jshint -W097 */
'use strict';

window.setInterval(toISO, 1000);

function toISO() {
  var rows = document.getElementsByTagName('tr');
  for (var i = 0; i < rows.length; i++) {
    var rowElements = rows[i].children;
    if (rowElements.length == 8) {
      var timestamp = rowElements[7].firstElementChild;
      var parts = timestamp.title.split(/, | | at /);
      if (parts.length == 7) {
        if (/:/.test(timestamp.textContent)) {
          var time = parts[5].split(':');
          time[0] = parseInt(time[0],10);
          if (/[Aa][Mm]/.test(parts[6])) {
            if (time[0] == 12) {
              time[0] = 0;
            }
          }
          if (/[Pp][Mm]/.test(parts[6])) {
            time[0] = time[0] + 12;
            if (time[0] == 24) {
              time[0] = 0;
            }
          }
          timestamp.textContent = ('0' + time[0]).slice(-2) + ':' + time[1] + ' (' + parts[6] + ')';
        } else {
          var month = 1 + ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'].indexOf(parts[1]);
          timestamp.textContent = parts[3] + '-' + ('0' + month).slice(-2) + '-' + ('0' + parts[2]).slice(-2);
        }
      }
    }
  }
}

0

Kịch bản 2 ở trên không hoạt động tốt đối với tôi, vì vậy tôi đã viết lại chúng cho trường hợp của mình (Firefox v57 + Tempermonkey và Gmail locale en-UK).

// ==UserScript==
// @name         ISO Date for Gmail
// @namespace    http://rabin.io/
// @version      0.1
// @description  Change Gmail date format to ISO 8601, per /webapps//q/89499
// @author       Rabin
// @match        https://mail.google.com/mail/u/*
// @grant        none
// @run-at       document-idle
// ==/UserScript==

(function() {
    'use strict';


    window.setInterval(toISO, 1000);

    function toISO() {

        var rows = document.getElementsByClassName('xW');
        for (var i = 0; i < rows.length; i++) {

            var timestamp = rows[i].firstElementChild.title.split(/, | | at /);

            if (timestamp.length == 5) {
                var d = new Date(timestamp[1] + " " + timestamp[0] + " " + timestamp[2] + " " + timestamp[4]);
                var x = rows[i].firstChild;
                //x.textContent = d.toISOString();
                x.textContent = d.getFullYear() + '-' + ('0' + (d.getMonth()+1)).slice(-2) + '-' + ('0' + d.getDate()).slice(-2);
            }

        }
    }

})();

-2

Hãy thử tiếng Pháp Canada thay vì tiếng Pháp châu Âu ...


Đối với các ngày chỉ có số, kể từ thay đổi giao diện người dùng giữa năm 2018, Français cung cấp dd / mm / yyyy và Français (Canada) cung cấp cho yy-mm-dd. Cả hai đều không phải là ISO 8601, cả hai đều mơ hồ, và cái sau mang lại những công trình xấu xí và bí ẩn như 08-08-19 và 13-03-10.
Mathieu K.
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.