เปลี่ยนรูปแบบวันที่ของ Gmail เป็น ISO 8601 (เช่น yyyy-mm-dd)


คำตอบ:


9

ฉันไม่เห็นวิธีการเปลี่ยนไปใช้รูปแบบ ISO ในตัว แต่ฉันเขียนuserscriptสำหรับสิ่งนี้ ทดสอบใน 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) มันจะไม่ทำงานกับ "อังกฤษ (สหราชอาณาจักร)"
wip

10

สิ่งนี้ถูกควบคุมโดยเฉพาะผ่านการตั้งค่าภาษา

ด้วยภาษาของฉันตั้งเป็นภาษาอังกฤษ (สหรัฐอเมริกา), วันที่ในรายการสนทนาอยู่ในรูปแบบอืม dกับวันที่สำหรับปีที่ผ่านมาและก่อนหน้านี้ในรูปแบบdd / mm

เมื่อเปลี่ยนเป็นภาษาอังกฤษ (สหราชอาณาจักร) แบบฟอร์มจะเปลี่ยนเป็นd Mmmและdd / mm / yyyyตามลำดับ

ไม่มีตัวเลือกอื่น ๆ สำหรับภาษาอังกฤษใน Gmail เมื่อเปลี่ยนเป็นภาษาฝรั่งเศสแล้วจะเป็นไปตามสไตล์เดียวกันกับภาษาอังกฤษแบบอังกฤษ (แต่เห็นได้ชัดว่าเป็นภาษาฝรั่งเศสซึ่งฉันไม่ได้พูดหรืออ่าน)

ไม่มีการตั้งค่าอื่น ๆ สำหรับการแปลภายใน Gmail และไม่มีวิธีเลือกรูปแบบวันที่โดยไม่ขึ้นกับภาษา มันจะดูเหมือนทางเลือกเดียวของคุณในเวลานี้คือการใช้สิ่งที่ต้องการUserScript แนะนำโดยพวกเขา-the-เคยเปลี่ยนชื่อ


ตั้งแต่กลางปี ​​2018 UI มีการเปลี่ยนแปลงสำหรับวันที่เป็นตัวเลขเท่านั้นตอนนี้เรามี m / d / yy เป็นภาษาอังกฤษ (สหรัฐอเมริกา), dd / mm / yyyy ในภาษาอังกฤษ (สหราชอาณาจักร) และFrançaisและ yy-mm-dd ในFrançais ( แคนาดา). นี่ไม่ใช่ ISO 8601 แน่นอน
Mathieu K.

1

สคริปต์ต้นฉบับโดย: user79865

  1. แทนที่ @match ด้วย @include เพื่อให้เข้ากันได้ดีกับ Opera + Violentmonkey
  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

ลองแคนาดาฝรั่งเศสแทนยุโรปฝรั่งเศส ...


สำหรับวันที่เป็นตัวเลขอย่างเดียวเนื่องจากการเปลี่ยนแปลง UI กลางปี ​​2018 Françaisให้ dd / mm / yyyy และFrançais (แคนาดา) ให้ yy-mm-dd สิ่งเหล่านี้ไม่ได้เป็น ISO 8601 ทั้งคู่มีความคลุมเครือและสิ่งหลังนี้ให้ผลลัพธ์ที่น่าเกลียดและลึกลับเช่น 08-08-19 และ 13-03-10
Mathieu K.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.