JSON日期到正常的JS日期

时间:2017-05-22 13:12:49

标签: javascript mysql json date bar-chart

我遇到convert json date to javascript date format user7397787 提出的类似问题。

我所拥有的是一个包含MySQL表数据的JSON字符串。其中一个数据是日期。我使用自己的代码将此日期转换为正常日期,如下所示:

 var comp_date = [];
 for (var i in data) {
   var fields =  data[i].myDate.split('/');
   var mm = fields[0];
   var dd = fields[1];
   var yy = fields[2];
   mm < 10 ? '0' + mm :  mm; 
   dd < 10 ? '0' + dd : dd;
   var formatted_date = mm + "/" + dd + "/" + yy;                
   var dt = new Date(formatted_date);
   comp_date.push(dt);
 }

此日期用于条形图。现在发生的事情是 x轴的日期显示为Sat Sep 09 2017 00:00:00 GMT+0500 (Time Zone here),而 y轴日期显示为1505900000000, 1505800000000, 1505700000000, 1505600000000 。我想以mm-dd-yyyy格式双方约会。

我尝试使用convert json date to javascript date format sammysaglam 解释的方法转换日期,如下所示:

var date =  unix_to_readable( data[i].myDate);

然后我得到的所有日期都返回了相同的值,即01-01-1970

任何人都知道发生了什么或我做错了什么?

谢谢。

1 个答案:

答案 0 :(得分:1)

我记下了你说1505900000000遇到问题的其中一个号码。此代码段显示了如何在javascript中将其转换为可读字符串(通过日期对象)。如果您运行该代码段,则会向您显示您要查找的日期字符串。

&#13;
&#13;
var dateNumberString = '1505900000000'; // This is what you get from JSON
var dateNumber = parseInt(dateNumberString); // make it a number
var date = new Date(dateNumber);// javascript will convert to date object for you
var dateString = date.toString(); // make it a string
alert(dateString);
&#13;
&#13;
&#13;

然后按照您希望的方式格式化日期:

&#13;
&#13;
var dateObj = new Date();
var formattedString = getFormattedDate(dateObj);
alert(formattedString);

// This function takes a javscript date object
function getFormattedDate(date) {
  var year = date.getFullYear();
  var month = (date.getMonth() + 1).toString(); // javascript month is zero based 
  month = month.length > 1 ? month : '0' + month;
  var day = date.getDate().toString();
  day = day.length > 1 ? day : '0' + day;
  return month + '-' + day + '-' + year;
}
&#13;
&#13;
&#13;