【问题标题】:JSON date to normal JS dateJSON日期到普通JS日期
【发布时间】:2017-05-22 13:12:49
【问题描述】:

我遇到了 user7397787convert json date to javascript date format 中提出的类似问题。

我拥有的是一个带有 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 formatsammysaglam 解释的方法转换日期,如下所示:

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

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

有人知道发生了什么或我做错了什么吗?

谢谢。

【问题讨论】:

  • @ChrisForrence 你是对的,它也可以这样工作。我是新手,所以我在 js 编码方面没有太多经验。感谢您指出了这一点。更新了我的知识。
  • 您正在使用什么图形库,它期望什么类型?它需要一个格式化的字符串还是它自己需要一个javascript Date 对象和格式?您是说在同一个 json 对象中返回两个不同的日期,一组(x 轴)正确显示,而一组(y 轴)不正确?
  • 我正在使用chart.js,按照这个例子dyclassroom.com/chartjs/…
  • JSON 数据格式没有 Date 类型。你实际上有什么?提供minimal reproducible example。在其中包含一些示例输入。告诉我们预期的输出是什么。

标签: javascript mysql json date bar-chart


【解决方案1】:

我拿了一个你说你在使用1505900000000 时遇到问题的号码。此代码 sn-p 显示了如何在 javascript 中将其转换为可读字符串(通过日期对象)。如果您运行 sn-p,则警报将显示您正在查找的日期字符串。

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);

然后按照您想要的方式格式化日期:

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;
}

【讨论】:

    猜你喜欢
    • 2018-04-29
    • 1970-01-01
    • 2012-06-07
    • 1970-01-01
    • 1970-01-01
    • 2020-03-04
    • 2011-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多