2017-11-02 1 views
0

私はブロックするためにいくつかの日付が必要なdatepickerを持っています。私はデータベースから日付を取得する必要があります。以下のスクリプトは正常に動作しています。asp.netのdatepickerでデータベース日付を使用するC#

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"]

のような日付を持ってしたいですか?

+0

を意味していますか?または時間の部分を削除したいだけですか? –

+0

私はこのようにしたい["2017-11-28"、 "2017-11-14"、 "2017-11-21"];カンマ区切りで時間部分を削除します。ありがとう –

答えて

0

お客様の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}"); 
} 
関連する問題