2013-04-29 62 views
-1

在我的网站上,我向人们展示他们打开我的网页的时间。所以当他们打开它在2013年4月29日上午10点9分它将显示:4/29/2013 10:09:14上午时间是不正确的在线版

这一切都工作正常我的localversion。

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

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

代码:

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

这可能是由于服务器上的时间与您的机器上的时间不同,哪一个最正确? – TheKingDave 2013-04-29 08:16:39

回答

5

你是显示的时间是服务器的时间......和你希望它是相同的本地时间。

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

你可能要考虑使用JavaScript,而不是在客户端上这样做。

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

1

DateTime.Now会显示您的服务器日期时间。如果您的服务器&您位于相同的时区,那么我认为您的本地系统时间与服务器日期时间不同。另外,如果你的服务器在不同的时区,那么你应该考虑在用户界面上显示日期时间之前在你的时区进行转换。

Convert Time in Different TimeZones in ASP.NET

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"); 

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

0

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

隐藏字段可以通过使用HTML控件“HtmlInputHidden”类与ASP.NET一起使用。你只要给你输入控制一个runat =“服务器”属性就像任何其他服务器端控制。

然后,服务器可以在表单回传后这段时间内读出。如果你需要在很多地方这样做,你甚至可以把它包装在一个服务器控件中。

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

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