使用linq查询从数据库中提取时日期格式不正确

时间:2012-10-29 20:52:49

标签: c# javascript asp.net-mvc linq jquery

我想从db中提取日期并将其显示在telerik ddl中。我能够拉出日期并显示它,但无法使格式化工作。日期显示如下:

/Date(13496724000000)/

这是我的控制器操作,用于从db:

中提取日期
    [HttpPost]
    public ActionResult Date(int id)
    {
        var dates = (from p in db.vwdb.Where(u => u.Id == id)
                           group p by p.Date into g
                    select g.Key).ToList();

        return Json(new { data = Convert.ToDateTime(weeks.Min())});
    }

这是我的jquery在ddl中显示它:

function populateDate() {
    var link = '/Users/Date';
    var dataSource = [];
    $.ajax({
        type: 'POST',
        url: link,
        data: { id: id },
        dataType: 'json',
        success: function (result) {
                var dateOf = result.data;
                dataSource.push({ Text: dateOf , Value: dateOf });
            $("#Date").data("tDropDownList").dataBind(dataSource);
        },
        error: function (result) {
            alert(result.message);
        }
    });
};

我想以这种格式显示日期:“MM / DD / YYYY” 而不是“/ Date(13496724000000)/”

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

您无法解析此 json Date 格式并将其转换为"MM/DD/YYYY"格式。

陷阱>

// jsonDate = "/Date(13496724000000)/"

function parseJsonDateTime(jsonDate) {

    var dateString = jsonDate.substr(6);
    var currentTime = new Date(parseInt(dateString));
    var month = currentTime.getMonth();
    var day = currentTime.getDate();
    var year = currentTime.getFullYear();

   var date = month + "/" + day + "/" + year;
    return date;

};

答案 1 :(得分:1)

试试这样:

success: function (result) {
    var date = new Date(parseInt(result.data.replace("/Date(", "").replace(")/",""), 10));
    var dateOf = date.getDate() + "/" + (date.getMonth() + 1) + "/" + date.getFullYear();
    dataSource.push({ Text: dateOf , Value: dateOf });
    $("#Date").data("tDropDownList").dataBind(dataSource);
}