iT邦幫忙

0

ASP.NET MVC jQuery DateTime問題

請教各位先進DateTime輸出的問題:
Controller程式碼

.............略
                //若己有上傳檔案,則帶出檔案資訊TODO
                UploadViewModel ulv = new UploadViewModel();
                ulv.DataList = uplSrv.GetStagePaperFile(PaperId, Stage);
                //## 模擬上傳的檔案內容
                List<PaperFile> oStr = new List<PaperFile>();
                foreach (PaperFile u in ulv.DataList)
                {
                    oStr.Add(new PaperFile() { SysPath = u.SysPath, FileName = u.FileName, FileId = u.FileId, UploadDate = Convert.ToDateTime(u.UploadDate) });
                }
                
                //## 將結果回傳
                return Json(new { isUploaded = true, result = oStr }, "text/html");

javascript程式碼

        var ajaxRequest = $.ajax({
            type: "POST",
                url: "@Url.Action("PaperFileUpload")",
                contentType: false,         // 告诉jQuery不要去這置Content-Type
                processData: false,         // 告诉jQuery不要去處理發送的數據
                dataType: "json",
                data: data
            })
            .done(function (data, textStatus) {
                $("#DivResult").empty();
                //## data 接收回傳的Json,透過each組合結果
                var htmlresult = "";
                console.log(data);
                $.each(data.result, function (i, item) {
                    htmlresult += "己上傳檔案名稱:";
                    htmlresult += "<a href='/Users/Paper/DownloadFile/" + item.FileId + "'>" + item.FileName + "</a><br/>";
                    htmlresult += "上傳日期:";
                    htmlresult += item.UploadDate;
                });
                //## 將結果append到預留的DIV中
                $("#DivResult").append(htmlresult);
            })
            .fail(function () {
                alert("Error");
            });

由javascript輸出結果

己上傳檔案名稱:3.docx
上傳日期:/Date(1559831330153)/

由MVC輸出格式的程式碼

<div id="DivResult">
    @foreach (var item in Model.DataList)
    {
        @:己上傳檔案名稱:
        @Html.ActionLink(@item.FileName, "DownloadFile", new { Id = item.FileId })
        <br/>
        @:上傳日期:
        @item.UploadDate
    }
</div>

由MVC輸出結果

己上傳檔案名稱: 3.docx 
上傳日期: 2019/6/6 下午 10:28:50

請教各位前輩,javascript輸出結果要如何修改才能顯示出正確的日期格式呢?

0
小魚
iT邦高手 1 級 ‧ 2019-06-11 13:08:21

可以考慮後端傳到前端直接傳文字就好

0
浩瀚星空
iT邦大師 1 級 ‧ 2019-06-11 13:58:50

javascript要指定日期的顯示格式有以下幾種方法
1.直接依目前的本機日期格式顯示定義,並依國別名顯示

    var NowDate = new Date(now_system_time);    
    str = '' + NowDate.toLocaleString('zh-TW', { hour12: false });

2.拆解法

var NowDate = new Date();
document.getElementById("datebox").innerHTML =
             NowDate + "<br>"
        + "西元年:" + NowDate.getFullYear() + "<br>"
        + "月份:" + NowDate.getMonth() + "<br>"
        + "日期:" + NowDate.getDate() + "<br>"
        + "時:" + NowDate.getHours() + "<br>"
        + "分:" + NowDate.getMinutes() + "<br>"
        + "秒:" + NowDate.getSeconds() + "<br>"
        + "毫秒:" + NowDate.getMilliseconds() + "<br>"
        + "星期:" + NowDate.getDay() + "<br>"
        ;

其它有人會做成外掛對應物件來定義格式。
大多數都是用拆解法居多。因為靈活度比較夠。

當然,直接用後端傳送到前台也是ok

0
Homura
iT邦高手 1 級 ‧ 2019-06-11 15:12:49

這個我有遇過
你可以在前端處理
參考這篇https://stackoverflow.com/questions/726334/asp-net-mvc-jsonresult-date-format

也可以改寫Controller的輸出
參考黑大這篇https://blog.darkthread.net/blog/asp-net-mvc-and-json-net/

dragonH iT邦新手 1 級 ‧ 2019-06-11 15:24:50 檢舉

我原本也想回用切的

但怕被當來鬧的就算了/images/emoticon/emoticon07.gif

從後端處理比較適合

我要發表回答

立即登入回答