Змініть формат дати Gmail на ISO 8601 (тобто, yyyy-mm-dd)


Відповіді:


9

Я не бачу вбудованого способу переходу у формат ISO, але я написав для цього сценарій користувача . Тестований у Chrome із Tampermonkey. Якщо Tampermonkey встановлений, натискаючи кнопку Raw у Github, слід запросити про встановлення сценарію.

Ви не просили змінити формат часу, тому я зберігав його так, як це стосується сьогоднішніх листів:

дати

Тут включений сценарій для повноти. (до 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);
        }
      }
    }
  }
}

Зауважте, що вам також потрібно встановити мову Gmail на "англійській мові" у меню "Налаштування / загальне", щоб ця версія сценарію працювала (станом на сьогодні 2017-10-25). Він не працюватиме з "Англійською (Великобританія)".
витирайте

10

Це контролюється виключно за допомогою мовної настройки.

З моєю мовою на англійській мові (США) дати в списку розмов у формі Mmm d , з датами минулого року та раніше у формі mm / dd / yyyy .

Якщо зміниться на англійську (Великобританія), форми змінюються відповідно на d Mmm та dd / mm / yyy відповідно.

Інших варіантів англійської мови в Gmail немає. При зміні на французьку вона в основному відповідає тому ж стилю, що і англійська мова у Великобританії (але, очевидно, по-французьки, яку я не розмовляю і не читаю).

Немає інших налаштувань для локалізації в Gmail, і немає способу вибрати формат дати незалежно від мови. Здається, ваш єдиний вибір на даний момент - використовувати щось на кшталт того, що сценарій користувача запропонований ім'ям постійно змінюваного імені .


Станом на середину 2018 року зміни інтерфейсу користувача, для дат, що мають лише номер, тепер ми маємо м / д / рік у англійській мові (США), дд / мм / рр. В англійській мові (Великобританія) та Франсуа, і yy-мм-dd у Франсуа ( Канада). Це справді не ISO 8601.
Матьє К.

1

Оригінальний сценарій : user79865

  1. Для кращої сумісності з Opera + Violentmonkey замінено @match на @include.
  2. Збільшений інтервал до адекватної 1 секунди.
  3. Фіксований показ часу від 12 до 24 години, але AM / PM зберігається з дипломатичних причин :)

Робочий сценарій нижче:

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

2 вищезазначений скрипт не працював для мене поза скринькою, тому я переписав їх для мого випадку (Firefox v57 + Tempermonkey та 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

Спробуйте канадську французьку замість європейської французької ...


Для дат, що мають лише число, станом на середину 2018 року, користувальницькі інтерфейси Франсуа надає dd / mm / yyyy, а Français (Канада) yy-mm-dd. Жоден із них не відповідає ISO 8601, обидва - неоднозначні, і остання дає такі потворні та загадкові споруди, як 08-08-19 та 13-03-10.
Матьє К.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.