mailto:Internet Explorer 在 Outlook 中反转时间字符串
我检查了生成的 href 字符串,它具有正确的时间字符串,当 Internet Explorer 移交给 Outlook 时,时间字符串会反转。我尝试用 .
或 ,
等其他符号替换 :
分隔符。但当任何字母用作分隔符时,它仍然是相反的它没有逆转,例如11点02点54分,使用new Date().toLocaleTimeString().replace(/\:/g,"t")
。
如果有人知道为什么它会反转时间戳以及任何停止反转的方法,请告诉我。
output in chrome
Hi, I have recently visited, https://stacksnippets.net/js at 11:02:54 AM
还有
output in Internet Explorer 11
Hi, I have recently visited, https://stacksnippets.net/js at 54:02:11AM
时间正确,但顺序相反:秒:分钟:小时
function sendEmail() {
var emailToSend = "mailto:to@email.com?cc=cc@email.com&subject=subject&body=" + encodeURIComponent("Hi, I have recently visited, " + "\n\t" + location.href + " at " + new Date().toLocaleTimeString() + "\r\n"+"Thanks,"+"\r\n\n\t");
var emailLink = document.createElement("a");
emailLink.href = emailToSend;
console.log(emailToSend);
emailLink.click();
}
<button onclick="sendEmail()"> Send Email </button>
带有时间戳 11:56:50 PM 的 href 字符串的示例控制台输出
在 Chrome 中
mailto:to@email.com?cc=cc@email.com&subject=subject&body=Hi%2C%20I%20have%20recently%20
visited%2C%20%0A%09https%3A%2F%2Fstacksnippets.net%2Fjs%20
at%2011%3A56%3A50%20PM%0D%0AThanks%2C%0D%0A%0A%09
在 Internet Explorer 中
11%3A56%3A50%20PM%0D%0A
这部分与上面的 chrome 输出一样,构造不同,时间戳数字的顺序相同,但长编码字符不同。
最佳答案
您计算机上的时间格式似乎设置为秒:分:小时 (ss:mm:hh tt)。
出于测试目的,我尝试更改我的机器上的时间格式并使用 IE 和 chrome 进行测试。
下面是测试结果。
Chrome:
Internet Explorer:
要解决此问题,您需要通过设置自定义格式或从时钟和区域设置中选择任何其他默认格式来更改计算机上的时间格式。
设置时间的自定义格式后在 IE 中输出。
请注意,时间将以该特定计算机上设置的格式显示。因此,如果您在任何其他计算机上运行此代码,并且该计算机具有任何其他格式,那么它将以该格式显示。
关于javascript - mailto:创建电子邮件时,Internet Explorer 在 Outlook 中反转时间字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57721397/