在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中使用数据库日期的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中使图像可见

未捕获的类型错误:$(...).datepick 不是 asp.net 中 jQuery datetime 中的函数

如何在Asp .Net Web API中的请求的整个生命周期中使类对象可用?

如何在 DatePicker 中使一周中的某些天不可用

Gridview Jquery DatePicker中的Asp.Net UpdatePanel

JQuery datepicker() 由 ASP.net 中的 CSS 类动态创建 TemplateFields