【问题标题】:Display C# DateTime in HTML Date Input在 HTML 日期输入中显示 C# DateTime
【发布时间】:2017-01-05 13:04:15
【问题描述】:

我在 SQL Server 数据库中得到一个 DateTime 并希望在输入中显示它:

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

这是我的 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] 得到“{2017/5/31 0:00:00}”,expiredate.Value 得到“31/05/2017”,但它只是在网页中显示没有错误。而且这条DateTime记录是通过完全相同的Input插入DataBase的,只是从DataBase中拉出来的时候不知道如何在同一个Input中显示。

第一次问,非常感谢!

【问题讨论】:

  • 运行时dt.Rows[0][5] 中的字符串值是多少?
  • 请编辑您的问题并将代码放入其中
  • @RyanSearle 我只是编辑我的帖子
  • 也许您可以尝试将输入中的日期格式更改为 YYYY-MM-DD。查看w3schools.com/jsref/prop_date_value.asp了解更多信息
  • 当您在浏览器中“检查”该输入(=找到它的 html)时,您看到您的日期了吗?

标签: c# html datetime


【解决方案1】:

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

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

希望这会有所帮助。

【讨论】:

  • 如果你需要反之亦然; Date.ToString("yyyy/MM/dd")
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2020-05-02
    • 2020-08-27
    • 2015-09-14
    • 1970-01-01
    • 2019-02-28
    • 1970-01-01
    • 1970-01-01
    • 2016-10-12
    • 2019-10-05
    相关资源
    最近更新 更多