J’ai un site où les utilisateurs peuvent publier des messages. Les utilisateurs peuvent être de partout dans le monde, alors quand ils postent, je stocke la date postée sous le nom DateTime.UtcNow. J’utilise le plug-in heure JQuery pour afficher les données postées similaire au débordement de stack (il y a 1 min, etc.), mais je ne suis pas sûr de la conversion en date que j’ai enregistrée dans le système à l’heure locale des utilisateurs? Voici ce que j’utilise:
public static MvcHtmlSsortingng ConvertToLocalTime(this HtmlHelper htmlHelper, DateTime date) { DateTime convertedDate = DateTime.SpecifyKind(DateTime.Parse(date.ToSsortingng()),DateTimeKind.Utc); return MvcHtmlSsortingng.Create(convertedDate.ToLocalTime().ToSsortingng()); }
Cela permet de convertir l’heure en heure locale des serveurs, mais j’en ai besoin pour l’heure locale des utilisateurs. Qu’est-ce que je fais mal? J’utilise .NET MVC 2 et .NET 4.0
En général, vous ne connaîtrez pas le fuseau horaire exact de l’utilisateur côté serveur. Au lieu d’essayer de convertir l’heure locale de l’utilisateur côté serveur, envoyez l’heure au client au format UTC et demandez au client de convertir l’heure. Le plugin TimeAgo le fait automatiquement tant que vous lui donnez l’heure au format complet ISO8601:
July 17, 2008
Le Z
à la fin de l’horodatage est important; cela signifie UTC.
Avez-vous la culture pour l’utilisateur actuel? Si tel est le cas, vous pouvez convertir leur fuseau horaire en utilisant le code de C # – Convertissez l’heure UTC / GMT en heure locale