2015-05-24 66 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") 
相关问题