【问题标题】:DateTime is not displayed as expected [duplicate]DateTime 未按预期显示[重复]
【发布时间】:2017-04-12 07:58:24
【问题描述】:

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

/Date(1480343496517)/

而我的期望是这样的:

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

这是我的完整代码:

C#类

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

网络方法

[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;
}

检查表

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);
     }
});

我做错了什么,我能做些什么来解决它?

【问题讨论】:

  • 我猜 JavaScriptSerializer 将 dateTime 转换为毫秒,因此可以轻松地将其作为 JSON 发送到客户端

标签: javascript c# jquery sql-server javascriptserializer


【解决方案1】:

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

[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 属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多