javascript JSON.parse错误的时间戳

时间:2014-08-31 08:42:55

标签: javascript json parsing timestamp

" JSON.parse"解析时间戳不正确。

strObj='{"Timestamp":635450757182431418}';
console.log ('String object:'  + strObj ); //  Timestamp":635450757182431418
var parseObj= JSON.parse (strObj);
console.log (parseObj); // Timestamp: 635450757182431400

http://jsfiddle.net/kwakwak/rqb6gf4z/

解析前的

:635450757182431418, 解析后:635450757182431400

有什么问题? 谢谢!

2 个答案:

答案 0 :(得分:0)

635450757182431418对于JavaScript格式编号来说太大了,这是IEEE754 double precision,这意味着整数部分大约有53位。

此数字不能完全表示为JavaScript编号,您应该使用不同的格式(字符串,数字数组,自定义)。

如果您想将时间戳作为字符串,您可以这样做:

var strTimestamp = strObj.match(/"Timestamp"\s*:\s*(\d+)/)[1];

答案 1 :(得分:0)

当您有一个字符串635450757182431418时,会存储一个值,但作为一个数字,它会四舍五入为635450757182431400

只需在Chrome控制台中输入

即可
635450757182431418

您将获得635450757182431400的结果,因为数字在JS中不支持大于635450757182431400