Javascript 如何在表中将Json日期字符串显示为DD/MM/YYYY

Javascript 如何在表中将Json日期字符串显示为DD/MM/YYYY,javascript,json,date,datetime,Javascript,Json,Date,Datetime,我试图将表中的一些json日期格式化为更可读的格式。从json返回的字符串如下所示“2015-06-29T10:00:00.000Z” 时间并不重要,我只想将日期显示为dd/mm/yyyy 我尝试过使用新日期(限制开支),但我可能弄错了,因为它不起作用。这是完整的代码 $(document).ready( function() { $.getJSON( 'opp.php', function(data) { $.each(data.opportunities, function() {

我试图将表中的一些json日期格式化为更可读的格式。从json返回的字符串如下所示
“2015-06-29T10:00:00.000Z”

时间并不重要,我只想将日期显示为dd/mm/yyyy

我尝试过使用
新日期(限制开支)
,但我可能弄错了,因为它不起作用。这是完整的代码

$(document).ready( function() {
 $.getJSON( 'opp.php', function(data) { 
  $.each(data.opportunities, function() { 
   $("table#outtodaytomorrow").append("<tr><td>" + this.number + "</td><td>" + new Date(this.starts_at) + "</td></tr>");
});
});
});
$(文档).ready(函数(){
$.getJSON('opp.php',函数(数据){
$.each(data.opportunities,function(){
$(“table#outtodaydomody”).append(“+this.number+”+新日期(this.start_at)+”);
});
});
});

非常感谢您的帮助。

您必须创建自己的功能,以实现您的目标

function formatDate(stringDate){
    var date=new Date(stringDate);
    return date.getDate() + '/' + (date.getMonth() + 1) + '/' +  date.getFullYear();
}
您的代码:

$("table#outtodaytomorrow").append("<tr><td>" + this.number + "</td><td>" + formatDate(this.starts_at) + "</td></tr>");
$(“table#outtodaydomody”).append(“+this.number+”+formatDate(this.start_at)+”);
请参见

首先,将其解析为具有

var date = new Date(this.starts_at);
第二,根据需要打印日期

var dateStr = (date.getDate() + '/' + (date.getMonth() + 1) + '/' +  date.getFullYear())
您将获得
“6/29/2015”

对于您的特定实例,它将类似于

 $(document).ready( function() {
   $.getJSON( 'opp.php', function(data) { 
     $.each(data.opportunities, function() { 
       var date = new Date(this.starts_at);
       var dateStr = (date.getDate() + '/' + (date.getMonth() + 1) + '/' +  date.getFullYear())
       $("table#outtodaytomorrow").append("<tr><td>" + this.number + "</td><td>" + dateStr + "</td></tr>");
     });
   });
 });
$(文档).ready(函数(){
$.getJSON('opp.php',函数(数据){
$.each(data.opportunities,function(){
var date=新日期(该日期从开始);
var dateStr=(date.getDate()+'/'+(date.getMonth()+1)+'/'+date.getFullYear())
$(“table#outtodaydomody”).append(“+this.number+”“+dateStr+”);
});
});
});
将组件拆分为不同的内存段,如“date”和“dateStr”,使其更易于阅读和理解。

您可以使用解析第一个输入,然后将其格式化为所需的格式
类似于:

$(document).ready( function() {
$.getJSON( 'opp.php', function(data) { 
    $.each(data.opportunities, function() { 
        $("table#outtodaytomorrow").append("<tr><td>" + this.number + "</td><td>" + moment(this.starts_at).format("DD/MM/YYYY") + "</td></tr>");
    });
});
});
$(文档).ready(函数(){
$.getJSON('opp.php',函数(数据){
$.each(data.opportunities,function(){
$(“table#outtodaytomody”).append(“+this.number+”+”+时刻(this.start_at).format(“DD/MM/YYYY”)+”);
});
});
});

试试
moment.js
可能是或的副本。这可以在原生javascript中用两行代码完成。1如果你够狡猾的话。无需导入不必要的库。一切都可以在本机javascript中完成。这里的重点是节省时间,使代码更干净。太好了,谢谢Zak。这看起来正是我想要的。这可能是一个愚蠢的问题,但我该如何将其添加到我的代码中,使其适用于表格的每一行?@James,请看一看我的答案。@Alexandru lonut Perfect,这正是我要寻找的。我现在明白了。谢谢。我说得太快了,这似乎不起作用,只是产生了一些错误。除非我不正确地调用函数,否则按惯例,以大写字母开头的函数名是为构造函数保留的
this.starts\u at
是一个字符串,对字符串调用日期方法无效,您需要事先将其转换为日期。@RobG,谢谢您的观点!。我更新了我的答案。