如何在邮件中发送收件人当地时间?
Posted
技术标签:
【中文标题】如何在邮件中发送收件人当地时间?【英文标题】:How to send the recepients local time in mails ? 【发布时间】:2013-11-20 10:03:09 【问题描述】:我必须在电子邮件正文中发送收件人的当地时间。我的电子邮件正文是 html 内容。并通过我的 c# 代码在 html 正文中传递一些变量,如日期等。是否有任何我可以传递的 DateTime 格式,它将由邮箱自动转换为本地时间,或者我可以在 html/javascript 中执行的操作,当收到邮件时将时间动态转换为收件人本地时间?
谢谢
【问题讨论】:
【参考方案1】:简短的回答是否,抱歉。您要么需要将每个用户的 time-zone 存储在某个数据库中,然后您的 C# 代码将提供一定小时数的时间偏移,例如:
<%=MyDate.AddHours(Subscriber.TimeZoneOffset)%>
至于您在电子邮件正文中执行 JavaScript 的想法:不会发生!
作为一个懒惰的人,我可能只会在我的电子邮件中满足所有时间的资格要求,例如 09:00 GMT/CET/PST。不过,我意识到这可能不适用于所有用例;)
【讨论】:
我们可以存储用户上次登录时的时区信息,但是如果他上次登录的时区与他打开邮件的时区不同怎么办。它肯定没有效率。我想如果没有其他办法,那么我将不得不在日期时间旁边显示 GMT :( 嗯,这就是我所说的边缘案例。您的大多数用户在同一时区生活和工作,不是吗?你刚才建议的是解决问题的一个非常聪明的方法。荣誉。 如果可能,我会将用户的时区存储在配置文件中,并使用它在服务器上进行转换。【参考方案2】:JavaScript 是不允许发送电子邮件的,因为出于安全原因,它不会在客户端上执行。因此,发送时必须在邮件中加上时间。
您的数据库中是否有用户时区、邮政编码或国家/地区短代码?或者,用户在发送电子邮件时是否已登录?在这种情况下,您可以使用该数据在服务器上进行数学运算。
如果你事先没有掌握他们的时区信息,你肯定不能转换成他们的当地时间。
【讨论】:
以上是关于如何在邮件中发送收件人当地时间?的主要内容,如果未能解决你的问题,请参考以下文章