在HTML日期输入中显示C#DateTime

时间:2017-01-05 13:04:16

标签: c# html datetime

我在SQL Server数据库中获得了一个DateTime,并希望在Input:

中显示它



<input class="form-control" type="date" name="ExpireDate" id="expiredate" runat="server" value="31/12/2016" style="height: 30px; width: 267px">
&#13;
&#13;
&#13;

这是我的C#代码:

Medicine med = new Medicine(); 
int a = GridView1.SelectedIndex; 
med.ID = int.Parse(GridView1.DataKeys[a].Value.ToString()); 
DataProcess bal = new DataProcess(); DataTable dt = bal.getInfo(med)
expiredate.Value = Convert.ToDateTime(dt.Rows[0][5]).ToString("dd/MM/yyyy");

我在最后一行之后放了一个断点,我看到dt.Rows[0][5]得到了&#34; {2017/5/31 0:00:00}&#34;并且expiredate.Value得到了&#34; 31/05 / 2017&#34;但它只是在网页中没有显示任何错误。并且这个DateTime记录通过完全相同的Input插入到DataBase中,当我从DataBase中取出时,我只是不知道如何在同一个Input中显示它。

第一次问,非常感谢!

2 个答案:

答案 0 :(得分:3)

这里的问题是html日期输入的格式和asp.net DateTime不匹配。 Html date输入显示mm/dd/yyyy,但背后的格式为yyyy-MM-dd

尝试使用expiredate.Value = Convert.ToDateTime(dt.Rows[0][5]).ToString("yyyy-MM-dd");

希望这有帮助。

答案 1 :(得分:0)

您似乎在日期类型的输入字段中推送日期。但这不起作用。因为html不支持原始日期格式的默认值。因此,您必须使用javascript自定义日期字段。但是,如果你从Razor Html助手那里得到任何帮助,那么你就可以这样做,而不是像.NET framwork那样。您可以轻松地从以前的答案jQuery datepicker获取帮助,在这里您可以通过javascript设置默认日期,这将显示在您的输入字段中。