将UTC时间转换为客户端浏览器';在MVC视图中使用JavaScript设置时区

将UTC时间转换为客户端浏览器';在MVC视图中使用JavaScript设置时区,javascript,asp.net-mvc,Javascript,Asp.net Mvc,我的网站上有一个模块,登录用户可以在其中对任何文章发表评论。我正在将UTC时间保存为数据库中的发布时间。根据我的要求,我需要在评论中显示发布时间,以及发布时间和当前时间之间的时差(例如上次在Facebook上看到的时差或Facebook上的评论发布时间)。发布的时间必须显示在客户端浏览器的时区中 例如:用户XYZ对UTC时间01:00发表了评论,以及 如果XYZ的帐户是从印度登录的,则必须设置时区 印度时区(UTC+05:30)时间将出现在上午6:30 如果XYZ的帐户是从新加坡登录的,则时区

我的网站上有一个模块,登录用户可以在其中对任何文章发表评论。我正在将
UTC时间
保存为数据库中的发布时间。根据我的要求,我需要在评论中显示
发布时间
,以及发布时间和当前时间之间的
时差
(例如上次在Facebook上看到的时差或Facebook上的评论发布时间)。发布的时间必须显示在客户端浏览器的时区中

例如:用户XYZ对UTC时间
01:00
发表了评论,以及

  • 如果XYZ的帐户是从印度登录的,则必须设置时区
    印度时区(UTC+05:30)
    时间将出现在上午6:30

  • 如果XYZ的帐户是从新加坡登录的,则时区必须是
    新加坡时区(UTC+8:00)
    ,并且将显示时间 上午9点

为了实现上述目标,我在网上搜索并找到了这篇文章,这篇文章非常有助于获取客户端浏览器的
时区。(我还无法测试它是否能正确转换时间)

现在主要的问题是将UTC时间转换为给定的
时区
(我使用的是这里提到的解决方案)


请分享建议。

如果您获得时区名称,您可以从UTC获得如下时间:

var utc = DateTime.UtcNow;
var tz = TimeZoneInfo.FindSystemTimeZoneById("The Timezone");
return TimeZoneInfo.ConvertTimeFromUtc(utc, tz);

希望这有帮助

您可以从这个
JS
片段中获取客户端浏览器的偏移值

function returnTimeDiff(postDateTime, spanid) {
    var offset = (new Date().getTimezoneOffset() / 60)
}

希望它能对您有所帮助。

您必须将奥尔森时区转换为Windows时区,如下所述:。完成此操作后,从UTC转换日期时间应该很简单。@AndrewHitaker感谢您的回复。。解决方案是使用C#。。我需要用JavaScript执行所有操作。请建议…这是一个javascript@lopzbertoni。。感谢您的回复,我必须使用java脚本执行完整的操作,这样它才能运行得更快。请建议..您可以使用@Jasen建议。或者,您需要以UTC以及UTC偏移量存储时间,如果时间也是夏令时,则需要正确地重新创建本地时间。