我有一个用户可以发帖的网站。用户可能来自全球各地,因此当他们发帖时,我将发布日期存储为 DateTime.UtcNow。我正在使用 JQuery 时间前插件来显示类似于堆栈溢出的发布数据(1 分钟前等...),但我不确定如何将系统中存储的日期转换为用户本地时间?这是我正在使用的:
public static MvcHtmlString ConvertToLocalTime(this HtmlHelper htmlHelper, DateTime date)
{
DateTime convertedDate = DateTime.SpecifyKind(DateTime.Parse(date.ToString()),DateTimeKind.Utc);
return MvcHtmlString.Create(convertedDate.ToLocalTime().ToString());
}
这将时间转换为服务器本地时间,但我需要它作为用户本地时间。我究竟做错了什么?我正在使用 .NET MVC 2 和 .NET 4.0
一般来说,您不会在服务器端知道用户的确切时区。不要尝试在服务器端转换为用户的本地时间,而是将 UTC 时间发送到客户端并让客户端转换时间。只要您以完整的 ISO8601 格式提供时间,TimeAgo 插件就会自动执行此操作:
<abbr class="timeago" title="2008-07-17T09:24:17Z">July 17, 2008</abbr>
The Z
时间戳末尾很重要;这意味着 UTC。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)