Cambia il formato della data di Gmail in ISO 8601 (ovvero, aaaa-mm-gg)


Risposte:


9

Non vedo un modo integrato per passare al formato ISO, ma ho scritto uno script per questo. Testato in Chrome con Tampermonkey. Se è installato Tampermonkey, facendo clic sul pulsante Raw in Github dovrebbe essere richiesta l'installazione dello script.

Non hai richiesto la modifica del formato dell'ora, quindi l'ho tenuto come per le e-mail di oggi:

date

Inclusa la sceneggiatura qui per completezza. (aggiunti caratteri jolly all'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);
        }
      }
    }
  }
}

Nota che devi anche impostare la lingua di Gmail su "Inglese (USA)" nel menu Impostazioni / Generale affinché questa versione dello script funzioni (a partire da oggi 25-10-2017). Non funzionerà con "English (UK)".
pulire il

10

Questo è controllato esclusivamente attraverso l'impostazione della lingua.

Con la mia lingua impostata su inglese (Stati Uniti), le date nell'elenco delle conversazioni sono nel formato Mmm d , con le date dello scorso anno e precedenti nel formato mm / gg / aaaa .

Se cambiati in inglese (Regno Unito), i moduli cambiano rispettivamente in d Mmm e gg / mm / aaaa .

Non ci sono altre opzioni per l'inglese in Gmail. Quando viene cambiato in francese, segue sostanzialmente lo stesso stile dell'inglese britannico (ma ovviamente in francese, che non parlo o leggo).

Non ci sono altre impostazioni per la localizzazione in Gmail e non c'è modo di scegliere il formato della data indipendentemente dalla lingua. Sembrerebbe che la tua unica scelta in questo momento sia quella di usare qualcosa come lo script utente suggerito dal loro nome in continua evoluzione .


A partire dalla modifica dell'interfaccia utente di metà 2018, per le date di solo numero ora abbiamo m / g / aa in inglese (USA), gg / mm / aaaa in inglese (Regno Unito) e Français e yy-mm-gg in Français ( Canada). Questi non sono in effetti ISO 8601.
Mathieu K.,

1

Script originale di: user79865

  1. Sostituito @match con @include per una migliore compatibilità con Opera + Violentmonkey.
  2. Intervallo aumentato a 1 secondo completamente adeguatamente.
  3. Risolto il problema con la visualizzazione dell'ora dalle 12 alle 24, ma mantenuto l'AM / PM per motivi diplomatici :)

Script di lavoro di seguito:

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

Lo script 2 sopra non ha funzionato per me, quindi li riscrivo per il mio caso (Firefox v57 + Tempermonkey e 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

Prova il francese canadese invece del francese europeo ...


Per le date di solo numero, a partire dalla modifica dell'interfaccia utente di metà 2018, Français indica gg / mm / aaaa e Français (Canada) indica yy-mm-gg. Nessuna di queste sono ISO 8601, entrambe sono ambigue e quest'ultima produce costruzioni così brutte e misteriose come 08-08-19 e 13-03-10.
Mathieu K.,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.