【问题标题】:Converting the date in asp:textbox/textmode from yyyy-mm-dd to dd-mm-yyyy?将 asp:textbox/textmode 中的日期从 yyyy-mm-dd 转换为 dd-mm-yyyy?
【发布时间】:2014-04-14 19:49:15
【问题描述】:

尝试从文本框中传递特定格式的日期时遇到问题。

在 asp 中,文本框允许您将文本模式更改为日期。

这样做会弹出一个漂亮的小日历。唯一的问题是它输入的格式是 yyyy-mm-dd ,我想将其更改为 dd-mm-yyyy 以便我可以将其传递到 sql 字符串中

有没有办法做到这一点。

非常感谢

【问题讨论】:

  • 日期就是日期,SQL不关心格式
  • @meda 只要日期是日期时间! Samibravo,您使用的是什么列类型?
  • 我使用 Telerik 并将我的 aspx 代码格式如下
  • @mason 列类型为varchar,由于数据库太大,此时我无法将其更改为datetime
  • @DJKRAZE 不,它没有 DataInput 属性

标签: c# asp.net sql date


【解决方案1】:

你可以在插入时在服务器端进行转换。

DateTime theDate=DateTime.ParseExact(TextBox1.Text, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture);
string dateToInsert=theDate.ToString("dd-MM-yyyy");

我相信当您将 ASP TextBoxMode 设置为日期时,它只是使用“日期”类型的 HTML5 输入。因此,格式实际上取决于客户。这不好,因为我们不知道客户端可能使用什么日期格式!

更好的解决方案是使用jQuery UI DatePicker 之类的东西。这将使您可以更好地控制所使用的内容,无论是什么客户端。

<script>
  $(function() {
    $( "#datepicker" ).datepicker({dateFormat: "dd-mm-yyyy"});
  });
  </script>

<asp:TextBox runat="server" id="datepicker" ClientIDMode="Static" />

【讨论】:

    【解决方案2】:

    我使用了 Ajaxtoolkit 日历,如此简单且非常灵活,这是我使用的代码

    <asp:TextBox ID="tb_search_date" runat="server" /> <ajaxToolkit:CalendarExtender ID="CalendarExtender1" TargetControlID="tb_search_date" Format="dd-MM-yyyy" runat="server" OnClientShown="DisableWeekends </ajaxToolkit:CalendarExtender>

    您可以将格式框中的“-”替换为您喜欢的任何内容,它将重新格式化日期。

    这里有一个网站

    http://www.asp.net/ajaxlibrary/ajaxcontroltoolkitsamplesite/calendar/calendar.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 2016-06-21
      相关资源
      最近更新 更多