Javascript JQuery日期选择器无效日期

Javascript JQuery日期选择器无效日期,javascript,c#,jquery,asp.net,Javascript,C#,Jquery,Asp.net,当JQuery DatePicker中的日期被选中并用作SQL语句中的变量时,我遇到了一个问题。即使我使用datetime.Parse或Convert.datetime格式化datetime字符串,它也会出现一个错误,表示该字符串无效 JQuery日期选择器 <script> $( function() { $("#datepicker").datepicker({ altField: "#ContentPlaceHolder1_selectDa

当JQuery DatePicker中的日期被选中并用作SQL语句中的变量时,我遇到了一个问题。即使我使用datetime.Parse或Convert.datetime格式化datetime字符串,它也会出现一个错误,表示该字符串无效

JQuery日期选择器

   <script>
  $( function() {
      $("#datepicker").datepicker({
        altField: "#ContentPlaceHolder1_selectDate",
          defaultDate: $('#ContentPlaceHolder1_defaultDate').val(),
          dateFormat: "mm-dd-yy",
          onSelect: function (date, obj) {
              $('#ContentPlaceHolder1_defaultDate').val(date);
              $('#ContentPlaceHolder1_selectDate').val(date)
              $('#ContentPlaceHolder1_defaultDate').trigger('change');
              $('#form1').submit();  
          },
    });
      });
  </script>
  <script>
     $(document).ready(function () {
     onLoad:   $('#ContentPlaceHolder1_defaultDate').val($('#ContentPlaceHolder1_selectDate').val());
    });
  </script>

<div id="datepicker"></div>
<input type="text" id="defaultDate" runat="server"/>
<input type="text" id="selectDate" runat="server" />
<asp:Label ID="Label1" runat="server" />
但是,这会导致错误消息

    if (!IsPostBack)
    {
        string defDate = selectDate.Value.Replace('-', '/');
        DateTime DT = DateTime.Parse(defDate);
        label1.Text = DT.ToShortDateString();
     }
此代码有效

 if (!IsPostBack)
    {
        string defDate = DateTime.Now.Date.ToShortDateString();
        DateTime DT = DateTime.Parse(defDate);
        label1.Text = DT.ToShortDateString();
    }
  else
    {
        string defDate = selectDate.Value.Replace('-', '/');
        DateTime DT = DateTime.Parse(defDate);
        label1.Text = DT.ToShortDateString();
    }

有人能解释一下原因吗?

DateTime.Parse只采用4种不同的格式

2018-09-14
09/14/2018
Sep 14 2018
14 Sep 2018
它将不接受
mm-dd-yy
格式

尝试将
-
替换为
/
,如下所示

defDate.replace('-', '/');

mm
代表分钟,你的意思可能是
mm
@Rafalon“mm”将显示月份编号“mm”显示月份名称而不是C:
M
mm
在一位或两位数字上显示月份编号,
MMM
MMMM
显示短月或长月name@Rafalon我把它改成了MM,但我还是得到了一个error@Rafalon不,它作为字符串传递。我也这么想。但当我仅仅使用selectDate.value时,我得到了一个错误,说“无法将参数值从字符串转换为DateTime”。我使用了您的建议,但仍然收到一条错误消息。我已经更新了代码。@DanNick可能是selectDate.Value有问题。似乎您的日期选择器被称为“DatePicker”,所以请尝试DatePicker.value,而不是不起作用的SelectedDate。我更新了代码。我让代码工作,但我不知道为什么?初始页面加载时,日期选择器是否未将默认日期设置为今天?
defDate.replace('-', '/');