I have a site where users can make posts. The users can be from all over the globe so when they post, I am storing the posted date as DateTime.UtcNow. I am using the JQuery time ago plug in to show the posted dat similar to stack overflow (1 min ago etc...) But I am not sure how to convert to date I have stored in the system to the users local time? Here is what I am using:
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());
}
This sees to convert the time to the servers local time but I need it for the users local time. What am I doing wrong? I am using .NET MVC 2 and .NET 4.0
In general, you aren't going to know the user's exact time zone on the server side. Instead of trying to convert to the user's local time on the server side, send the time to the client in UTC and have the client convert the time. The TimeAgo plugin does this automatically as long as you give it the time in full ISO8601 format:
<abbr class="timeago" title="2008-07-17T09:24:17Z">July 17, 2008</abbr>
The Z
at the end of the timestamp is important; that means UTC.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With