Reputation: 426
I am having an issue when the date from JQuery DatePicker is selected and used as a variable in my SQL Statement. It brings up an error saying invalid datetime string even when I formatted it using DateTime.Parse or Convert.DateTime.
JQuery DatePicker
<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" />
UPDATE: This issue is the Postback. If I do this code. It works fine
if (IsPostBack)
{
string defDate = selectDate.Value;
DateTime DT = DateTime.Parse(defDate);
label1.Text = DT.ToShortDateString();
}
However this causes the error message
if (!IsPostBack)
{
string defDate = selectDate.Value.Replace('-', '/');
DateTime DT = DateTime.Parse(defDate);
label1.Text = DT.ToShortDateString();
}
This code works
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();
}
Can someone explain the reason for this?
Upvotes: 2
Views: 1077
Reputation: 579
DateTime.Parse only takes 4 different formats.
2018-09-14
09/14/2018
Sep 14 2018
14 Sep 2018
It will not accept mm-dd-yy
format.
Try replacing the -
with /
like the following.
defDate.replace('-', '/');
Upvotes: 4