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ì :
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ì :
Câu trả lời:
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:
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);
}
}
}
}
}
Đ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 Mmm và dd / 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ịch bản gốc của: user79865
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);
}
}
}
}
}
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);
}
}
}
})();
Hãy thử tiếng Pháp Canada thay vì tiếng Pháp châu Âu ...