在线版本的时间不对

时间:2013-04-29 08:13:52

标签: c# html

在我的网站上,我向人们展示了打开页面的时间。因此,当他们在2013年4月29日上午10:09开放它时将显示:4/29/2013 10:09:14 AM

这一切在我的本地版本上运行良好。

但是现在我的网站上网了,时间延迟了5分钟。 我打开它:2013年4月29日上午10:10它显示我:29-4-2013 10:05:19

谁可以帮助我在线显示合适的时间。 我想要展示的时间需要是当地时间。

代码:

        <td>Capture Time:</td> // label
            <td>@DateTime.Now.ToString()</td>

4 个答案:

答案 0 :(得分:5)

您展示的时间是服务器时间......您希望它与当地时间相同。

如果您的服务器所在的时区与客户端计算机不同,则显示的时间会有所不同。

您可能需要考虑使用javascript并在客户端上执行此操作。

或者以UTC等标准格式显示服务器时间,客户端可以尝试确定与当地时间的差异。

答案 1 :(得分:1)

DateTime.Now将显示服务器日期时间。如果你的服务器&amp;您位于同一时区,我认为您的本地系统时间与服务器日期时间不同。

此外,如果您的服务器位于不同的时区,那么您应该考虑在UI上显示日期时间之前在您的时区进行转换。

Convert Time in Different TimeZones in ASP.NET

答案 2 :(得分:0)

看起来它以不同的格式显示(dd-MM-yyyy,而您希望MM/dd/yyyy)。确保在生产服务器上的web.config中正确设置了您的文化:

<system.web>
    <globalization requestEncoding="utf-8" responseEncoding="utf-8"
        culture="en-US" />
</system.web>

另外,请尝试在ToString方法中指定格式:

DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss tt");

这将以您想要的格式显示日期。但是,时间取决于服务器的时间,并不一定与本地计算机上的时间相匹配。

答案 3 :(得分:0)

这将占用服务器端的日期和时间。如果服务器在美国,如果你在印度,那么你将获得12小时的差异。要解决此问题,请创建一个隐藏的输入字段,然后将Javascript例程连接到表单的onsubmit事件。此例程将使用客户端计算机上的时间填充隐藏字段。

隐藏字段可以通过使用HTML控件“HtmlInputHidden”类与ASP.NET一起使用。您只需为输入控件提供runat =“server”属性,就像任何其他服务器端控件一样。

然后,当表单回发时,服务器可以读出此时间。如果您需要在许多地方执行此操作,您甚至可以将其包装在服务器控件中。

var now = new Date();
now.format("dd/M/yy h:mm tt"); 

将此日期时间复制到具有runat =“server”属性的隐藏字段,并从服务器获取该值。