我正在使用jQuery日期选择器让用户在文本框中输入日期。然后,日期将以2位数的月,日和2位数年份格式显示在网页上,并带有斜线mmddy
$(function() {
$("#datepicker").datepicker({ dateFormat: 'mmddy' });
});
输入此日期后,它会正确显示在页面上,但数据库中的日期不会反映在文本框中输入的日期。相反,我将输入正确的日期和年份,但不是月份。
CultureInfo provider = CultureInfo.InvariantCulture;
DateTime dt new DateTime();
dt = DateTime.ParseExact(datepicker.Text, "mmddy", provider);
cmd.Parameters.AddWithValue("@date", dt);
//result example 2016-01-09 hh:mm:ss the should be 2016-09-09
我尝试过转换为字符串。我尝试了不同的解析方法(TryParseExact
等)。它会在数据库中返回相同的结果,否则我会收到错误,例如无效的日期格式或日期小于可以在数据库中输入的最小日期。我不想使用DateTime.Now
,因为当它工作时,我正在使用检查器,如果用户输入将来的日期,它将更新到将来的日期并使用DateTime.Now将始终输入当前日期。我的表中的日期类型是datetime,使用旧版本的sql,并且允许NULL
。
答案 0 :(得分:5)
您的格式字符串mmddy
不正确。
您需要使用大写M
个月作为小写m
表示分钟:
e.g。
" M"月份,从1到12。
" MM"这个月,从01到12。
" MMM"月份的缩写名称。
" MMMM"这个月的全名。