而不是:
#1 楼
我没有看到切换到ISO格式的内置方法,但是我为此编写了一个用户脚本。使用Tampermonkey在Chrome中进行了测试。如果已安装Tampermonkey,则在Github中单击Raw按钮应提示安装脚本。您没有要求更改时间格式,所以我保留了今天的电子邮件格式:
在此处包括脚本完整性。 (已将通配符添加到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);
}
}
}
}
}
#2 楼
只能通过语言设置来控制。将我的语言设置为英语(美国),对话列表中的日期采用Mmm d格式,而去年和更早的日期采用以下格式mm / dd / yyyy。
当更改为英语(英国)时,表格分别更改为d Mmm和dd / mm / yyyy。
没有其他选择Gmail中的英语。更改为法语后,它的样式基本上与英国英语相同(但显然是法语,我不会说或不会阅读)。
Gmail中没有其他本地化设置,独立于语言选择日期格式的方式。目前看来,您唯一的选择是使用类似他们不断变化的名称所建议的用户脚本。
评论
自2018年中期用户界面更改以来,对于仅数字日期,我们现在在英语(美国)中有m / d / yy,在英语(英国)和Français中有dd / mm / yyyy,而在Français(加拿大)。这些确实不是ISO 8601。
– Mathieu K.
18年5月5日在14:19
#3 楼
原始脚本作者:user79865将@match替换为@include,以更好地与Opera +
Violentmonkey兼容。
将间隔增加到完全1秒。 >固定显示时间为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 https://webapps.stackexchange.com/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);
}
}
}
}
}
#4 楼
上面的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 https://webapps.stackexchange.com/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);
}
}
}
})();
#5 楼
几年过去了,Gmail仍然有同样的问题,但是以前的解决方案都无法正常工作,所以这是我目前可以正常使用的脚本(2020-03-02)。熟悉用户脚本的您可以在Chrome中安装一个扩展程序-tampermonkey(很久以前称为油脂监视器),然后在其设置中编写或粘贴将注入某些网站的Javascript代码。
评论
欢迎。请添加简短描述或至少参考,以指导UserScript的新读者(答案发布者应假定其答案仅将问题作为上下文)
–鲁本♦
20-3-2在23:52
是。你是对的。抱歉。我为自己的脚本能按预期工作感到非常兴奋。我刚刚编辑了我的回复。
–可爱的汉尼拔
19:50标记20年3月
#6 楼
有人对此进行了扩展。您必须设置一个自定义格式,但对于ISO 8601,它只是大多数其他日期格式字符串中使用的典型“ YYYY-MM-DD HH:mm”。我还要提到,这会更改所有日期,包括最近的日期,例如通常显示星期几,“昨天”或仅显示时间。
#7 楼
尝试用加拿大法语代替欧洲法语...评论
对于仅数字日期,自2018年中UI更改以来,Français给出dd / mm / yyyy,而Français(加拿大)给出yy-mm-dd。 ISO 8601和ISO 8601都不是模棱两可的,后者产生了08-08-19和13-03-10这样丑陋而神秘的结构。
– Mathieu K.
18年5月5日在14:24
评论
请注意,您还需要在“设置” /“常规”菜单中将Gmail语言设置为“英语(美国)”,此版本的脚本才能正常工作(自2017年10月25日起)。它不适用于“英语(英国)”。
– wip
17-10-24在15:38
为什么不编辑答案以将其放置在主体中,而不要像注释中那样错过它?
–达里恩·布里斯达兹(Darryn Brisdaz)
20年6月23日在13:43