在asp.net c#中的datepicker中使用数据库日期
Posted
技术标签:
【中文标题】在asp.net c#中的datepicker中使用数据库日期【英文标题】:using database dates in datepicker in asp.net c# 【发布时间】:2018-04-15 10:28:00 【问题描述】:我有一个日期选择器,它需要一些日期来阻止。我需要从数据库中获取日期。下面的脚本工作正常。
var disabledDates = ["2017-11-28", "2017-11-14", "2017-11-21"];
$(function ()
$('.dtpkr').datepicker(
dateFormat: 'dd/mm/yy',
appendText: '(dd/mm/yy)',
showOn: 'both',
beforeShowDay: function (date)
var string = jQuery.datepicker.formatDate('yy-mm-dd', date)
return [disabledDates.indexOf(string) == -1]
);
)
我正在使用以下代码从数据库中获取日期。
string date_query = "select display_date from X where display_type='static'";
DataTable dt = objDUT.GetDataTable(date_query);
ArrayList arrayList = new ArrayList();
for (int i = 0; i <= dt.Rows.Count - 1; i++)
arrayList.Add(dt.Rows[i][0].ToString());
Newtonsoft.Json.JsonSerializer jsr = new Newtonsoft.Json.JsonSerializer();
System.IO.StringWriter sw = new System.IO.StringWriter();
Newtonsoft.Json.JsonTextWriter jtw = new Newtonsoft.Json.JsonTextWriter(sw);
jsr.Serialize(jtw, arrayList);
string jsArrayJSON = sw.ToString();
我得到的日期像
12/12/2012 12:00:00 AM
12/12/2012 12:00:00 AM
但我想要["2017-11-28", "2017-11-14", "2017-11-21"]
这样的日期
如何实现?
【问题讨论】:
你的意思是你想让它们加入一行,用逗号分隔?或者您只是想删除时间部分? 我想要这样的 ["2017-11-28", "2017-11-14", "2017-11-21"];逗号分隔符删除时间部分。谢谢 【参考方案1】:您的for
循环是问题所在。它明确地将DataTable
中可能是日期或日期时间字段的内容转换为字符串。
相反,将其显式转换为DateTime
,然后使用string.Format()
或字符串插值将其转换为正确格式的字符串。
string.Format():
for (int i = 0; i <= dt.Rows.Count - 1; i++)
arrayList.Add(string.Format("0:MM/dd/yyyy", Convert.DateTime(dt.Rows[i][0]));
字符串插值:
for (int i = 0; i <= dt.Rows.Count - 1; i++)
arrayList.Add("Convert.DateTime(dt.Rows[i][0]):MM/dd/yyyy");
【讨论】:
以上是关于在asp.net c#中的datepicker中使用数据库日期的主要内容,如果未能解决你的问题,请参考以下文章
未捕获的类型错误:$(...).datepick 不是 asp.net 中 jQuery datetime 中的函数
如何在Asp .Net Web API中的请求的整个生命周期中使类对象可用?