【发布时间】:2017-11-22 16:04:59
【问题描述】:
我有一个以 UTC 格式存储记录的数据库。 c# .NET 应用程序读取数据并在服务器端填充 *.cshtml 表。服务器不知道客户端的时区,因为它不是浏览器报告的参数,并且没有登录或用户表单供用户输入配置文件并声明其时区。结果是在浏览器中以 UTC 显示的表格。 我知道,如果该值在 javascript 变量中,那么让浏览器进行时区偏移调整是微不足道的。但是,数据以一组 TD 标签的形式到达浏览器,中间有文本。
我能想到的将其转换为本地时间的任何解决方案都是不优雅的 - 使用 javascript 遍历表格,获取 innerHTML,解析它,调整它,然后放回它。这感觉像是一个糟糕的解决方案。有没有更好的办法?将数据作为 JSON 对象传递并通过 javascript 动态创建表?再次感觉笨拙。有没有更简单的方法让浏览器获取 TD> 标签之间的值并进行调整,比如
<TD> onsomething="this.innerHTML=adjustTime("2017-06-17 09:00:00");> </TD>
还是更好的方法?
【问题讨论】:
-
我会选择 JSON / AJAX 解决方案,在返回数据时动态创建表。您可以在请求中传递浏览器的时区偏移量。得到它就像
var d = new Date() var offset = d.getTimezoneOffset();一样简单 -
您还可以让 JavaScript 设置一个查询参数,说明当前偏移量是多少,并使用它来呈现本地时间。
-
感谢 Tim/Phuzi - 如果我获得了 JAX/JSON 路由,那么我认为我不需要将浏览器的偏移量传递给服务器,我可以在本地应用它。我希望可能有一个明显简单的方法,但怀疑你是对的最好的方法。
标签: javascript c# localtime