2015-05-24 44 views
0

我使用的是ASP文本框用的TextMode時間:輸入標籤類型的時間來獲得12小時格式值在ASP.NET

<asp:TextBox TextMode="Time" ID="time_box" runat="server"> 

當我運行在瀏覽器的代碼,我可以輸入時間採用12小時格式。 但是,當我點擊提交按鈕時,數據庫中的值以24小時格式存儲。

我也試圖做一個JavaScript「警報」,看看時間是12小時或沒有,但我還是在24小時內得到了價值。

所以,我怎麼保存12小時格式的時間在數據庫中?

我使用:

time_box.Text 
time_box.TextWithLiterals //or should I use this? 

還是需要的時間轉化成12個小時在後端的C#代碼?

+1

時間值在內部沒有格式。格式僅用於輸入/顯示時間值。那麼,究竟是什麼問題,你想在哪裏顯示12小時格式而不是24小時? – Dusan

+1

從數據庫加載時間時,該值的數據類型是什麼?它是'TimeSpan'還是'DateTime'? – Dusan

+0

@Dusan我認爲這是日期時間,我沒有開發的數據庫,但如果我想保存只應該用於這裏面的數據類型「時間」? – ahmedbatty

回答

2

存儲日期,時間,雙...值在你的數據庫沒有的format概念。例如,SQL Server中的date始終以數值形式存儲,這使得算術和比較變得更加簡單和快速。但是,例如,當這個值在SSMS中顯示給你時,你看不到原始數字,但是像17-12-2014這樣的人類可讀字符串。

format通常存在於顯示/解析中表示,其需要是人類可讀的一些值的概念。

當加載從數據庫值,它是TimeSpan數據類型的,則使用此代碼,以顯示在12小時的格式值:如果加載的值是DateTime類型的

time_box.Text = new DateTime(timeValue.Ticks).ToString("hh:mm tt") 

,然後使用此代碼:

time_box.Text = timeValue.ToString("hh:mm tt") 
相關問題