Ubah format tanggal Gmail menjadi ISO 8601 (yaitu, yyyy-mm-dd)


Jawaban:


9

Saya tidak melihat cara bawaan untuk beralih ke format ISO, tapi saya menulis naskah pengguna untuk ini. Diuji di Chrome dengan Tampermonkey. Jika Tampermonkey diinstal, mengklik tombol Raw di Github akan meminta instalasi skrip.

Anda tidak meminta format waktu untuk diubah, jadi saya menyimpannya seperti untuk email hari ini:

tanggal

Termasuk skrip di sini untuk kelengkapan. (menambahkan wildcard ke 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);
        }
      }
    }
  }
}

Perhatikan bahwa Anda juga perlu mengatur Bahasa Gmail ke "Bahasa Inggris (AS)" di menu Pengaturan / Umum agar skrip versi ini berfungsi (mulai hari ini 2017-10-25). Ini tidak akan berfungsi dengan "Bahasa Inggris (UK)".
bersihkan

10

Ini dikontrol secara eksklusif melalui pengaturan bahasa.

Dengan bahasa saya disetel ke Bahasa Inggris (Amerika Serikat), tanggal dalam daftar percakapan adalah dalam bentuk Mmm d , dengan tanggal untuk tahun lalu dan sebelumnya dalam bentuk mm / hh / tttt .

Ketika diubah ke Bahasa Inggris (Inggris Raya), formulir berubah menjadi d Mmm dan dd / mm / yyyy masing-masing.

Tidak ada opsi lain untuk bahasa Inggris di Gmail. Ketika diubah ke bahasa Prancis, pada dasarnya mengikuti gaya yang sama dengan Inggris Inggris (tapi jelas dalam bahasa Prancis, yang saya tidak berbicara atau membaca).

Tidak ada pengaturan lain untuk pelokalan dalam Gmail, dan tidak ada cara untuk memilih format tanggal terlepas dari bahasa. Tampaknya satu-satunya pilihan Anda saat ini adalah menggunakan sesuatu seperti skrip pengguna yang disarankan oleh mereka yang selalu berubah nama .


Pada perubahan UI pertengahan 2018, untuk tanggal hanya angka, kami sekarang memiliki m / d / yy dalam bahasa Inggris (AS), dd / mm / yyyy dalam bahasa Inggris (Inggris) dan Français, dan yy-mm-dd di Français ( Kanada). Ini memang bukan ISO 8601.
Mathieu K.

1

Script asli oleh: user79865

  1. @Match diganti dengan @include untuk kompatibilitas yang lebih baik dengan Opera + Violentmonkey.
  2. Peningkatan interval menjadi cukup memadai 1 detik.
  3. Memperbaiki tampilan waktu dari 12 hingga 24 jam tetapi tetap menggunakan AM / PM untuk alasan diplomatik :)

Skrip kerja di bawah ini:

// ==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

Skrip 2 di atas tidak berhasil bagi saya, jadi saya menulis ulang untuk kasus saya (Firefox v57 + Tempermonkey dan lokal Gmail 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

Coba Prancis Kanada alih-alih Eropa Prancis ...


Untuk tanggal hanya angka, pada perubahan UI pertengahan 2018, Français memberikan dd / mm / yyyy dan Français (Kanada) memberikan yy-mm-dd. Tak satu pun dari ini adalah ISO 8601, keduanya ambigu, dan yang terakhir menghasilkan konstruksi yang jelek dan misterius seperti 08-08-19 dan 13-03-10.
Mathieu K.
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.