DateTime未按预期显示

时间:2016-11-28 14:43:02

标签: javascript c# jquery sql-server javascriptserializer

我有一个C#代码从Sql表中获取一些日期,这些日期由mssql getdate()填充,这里的问题是我的日期显示在以下结构中:

/Date(1480343496517)/

我期待的是:

2016-11-28 08:13:23.820 //This is what I get executing my query in MSSQL

这是我的完整代码:

C#Class

public MyDate(DateTime date)
{
    Date = date;
}
public DateTime Date { get; set; }

的WebMethod

[WebMethod]
public string ShowDate()
{
    DataTable dt = new DataTable();
    dt = conn.CheckTable("date");
    MyDate fch;

    List<MyDate> list = new List<MyDate>();

    for (int i = 0; i < dt.Rows.Count; i++)
    {
        fch = new Fecha();
        fch.Date = Convert.ToDateTime(dt.Rows[i]["Date"]);

        list.Add(fch);
        fch = null;
    }

    JavaScriptSerializer js = new JavaScriptSerializer();
    string lines = js.Serialize(list);
    return lines;
}

CHECKTABLE

public DataTable CheckTable(string table)
{
    dt = new DataTable();
    ds = new DataSet();
    string sql = "";

    switch (table)
    {
        case "date":
            sql = "SELECT Date FROM dbo.Table_1";
            break;
    }

    try
    {
        Open();
        SqlDataAdapter da = new SqlDataAdapter(sql, conn);
        da.Fill(ds);
        dt = ds.Tables[0];
    }
    catch (Exception ex)
    {

    }
    finally
    {
        Close();
    }
    return dt;
}

我的JS功能:

$.ajax({
    type: 'POST', //POST | GET
    url: "WebService.asmx/ShowDate", //Direccion del ws
    dataType: 'json',
    contentType: 'application/json',
    timeout: 600000,
    error: function (xhr) {
      $('#dates').html('<option>Error</option>');
    },
    success: function (data) {
         var datas = JSON.parse(data.d);
         for (var i = 0; i < datos.length; i++) {
         var myDate= datas[i].Date;

         options += '<option value ="' + myDate+ '">';
         options += myDate;
         options += '</option>';
         }
         $('#dates').html(options);
     }
});

我做错了什么,我该怎么做才能解决它?

1 个答案:

答案 0 :(得分:0)

我不知道您正在使用的其他类是什么,但如果您只想查询查询中的日期列表,那么应该这样做......

[WebMethod]
public string ShowDate()
{
    DataTable dt = new DataTable();
    dt = conn.CheckTable("date");

    List<DateTime> list = new List<DateTime>();

    for (int i = 0; i < dt.Rows.Count; i++)
    {
        list.Add(Convert.ToDateTime(dt.Rows[i]["Date"]).ToString());
    }

    JavaScriptSerializer js = new JavaScriptSerializer();
    string lines = js.Serialize(list);
    return lines;
}

然后在JavaScript中,改变这一行......

var myDate = datas[i];

web方法现在只返回一个序列化的日期列表,因此不再需要获得列表对象的.date属性。