【问题标题】:JSON date format for HighstocksHighstocks 的 JSON 日期格式
【发布时间】:2013-10-01 19:02:35
【问题描述】:

我正在尝试使用 json 从数据库中检索数据并使用它来构建 highstocks 图表,但问题是日期格式,我以毫秒为单位获取 unix 时间戳。它存储为浮点类型,但是当我获取它时,它显示为字符串。我什至使用了 int 转换,但它给出了 2147483647(因为它是一个很大的数字。请帮助
这是 PHP 页面的输出(json 回调)

[
["1380648572000",224],
["1380648594000",223]
]

这里是 jsfiddle

http://jsfiddle.net/c8mKp/

【问题讨论】:

  • 这些是 javascript 时间戳。只需去掉最右边的 3 个字符即可获得秒数。它不如四舍五入,但由于您无论如何都无法四舍五入过大的数字,所以切掉是下一个最好的事情。
  • 这不是问题,问题是数组不应该有引号。 “1380648572000”应该是 1380648572000。它的浮点数据类型我如何修复它并返回到 json_encode ?感谢您的帮助
  • 您使用的是 32 位 PHP。您可以NOT拥有大于 2147483647 的整数。引号迫使 PHP 将这些数字视为字符串,为您保留所有数字。
  • 有解决办法吗???
  • 当然。升级到 64 位版本的 PHP。

标签: php json integer highstock


【解决方案1】:

看起来 json 编码不正确,但您应该使用 JSON_NUMERIC_CHECK 作为标志或使用字符串,然后通过 parseFloat() 解析每个 x 值。

【讨论】:

  • 试过 JSON_NUMERIC_CHCEK 这就是我得到的 [1.380648572e+12,224],[1.380648594e+12,223]
  • 您需要将数据准备为没有数学能力的浮点数。
  • 不可能它不是数学能力,它的浮点误差很大
猜你喜欢
  • 2016-12-16
  • 1970-01-01
  • 2018-05-13
  • 2012-05-24
  • 1970-01-01
  • 1970-01-01
  • 2013-03-26
  • 2018-04-22
  • 2017-04-19
相关资源
最近更新 更多