2017-10-15 112 views
0

我将包含许多事物(包括DateTime)的一些JSON数据传递给我的视图。我目前在控制器中将它编码为ISO格式,因此我将2017-10-13T23:21:00作为我的日期,但我不确定如何将其更改为更友好的10/13/17 11:21pm在MVC视图中为JQuery设置日期时间格式

目前它正在视图中呈现为JavaScript脚本的一部分。具体的部分是:

var template = "<tr><td>${DateTime}</td><td>${OtherStuff}</td></tr>" 

我试图

var dt = new Date("${DateTime}") 
var template = "<tr><td>" + dt + "</td><td>${OtherStuff}</td></tr>" 

没有成功(而不是我收到了“无效的日期”的预期输出)。我收到的错误导致我认为自己正朝着正确的道路前进,只是轻微地过关。


添加一些其他代码的情况下,它可以帮助

这是

$(function() { 
    var data = @Html.Raw(Json.Encode(Model)); 
    var renderTable = function (success, error) { 
     var dt = new Date("${DateTime}"); 
     var template = "<tr><td>" + dt + "</td><td>${OtherStuff}</td></tr>" 

     if (success) { 
      $("#table tbody").empty(); 
       $($.ig.tmpl(template, ds.dataView())).appendTo("#table tbody"); 
      } else { 
       alert(error); 
      } 
     } 

     //This code creates an $.ig.DataSource from JSON data 
     var ds = new $.ig.DataSource({ 
      type: "json", 
      dataSource: data, 
      callback: renderTable 
     }); 

     // Binds to the underlying data 
     ds.dataBind(); 
    }); 

所有部分,我相信我现在看到的问题,模板仅仅是一个模板,这样我就可以格式化稍后将被填充的占位符变量。但我该怎么做?

+1

库,例如moment.js有利于处理日期和削减了很多手工编码 – charlietfl

+0

尝试jQuery的日期格式https://github.com/phstc/jquery-dateFormat我认为“MM/dd/yyyy hh:mm”是am/pm格式 – derloopkat

+0

这两者看起来都很整洁,但我并没有在如何使用它们的上下文中使用它们。 – gilliduck

回答

0

您可以在您的日期对象上调用toLocaleString()方法以使其对语言友好。

var defaultDate = new Date("2017-10-13T23:21:00"); // Fri Oct 13 2017 23:21:00 GMT+0200 (Central Europe Daylight Time) 
var languageFriendlyDate = defaultDate.toLocaleString(); // 10/13/2017, 11:21:00 PM 

您还可以将特定区域设置作为toLocaleString()方法的参数传递。

// US English uses month-day-year order and 12-hour time with AM/PM 
console.log(date.toLocaleString('en-US')); 
// → "12/19/2012, 7:00:00 PM" 

有关详情,请: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString

相关问题