2013-04-29 61 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」屬性的隱藏字段,並從服務器獲取該值。