项目中的订单号生成规则为当前时间戳+一串序列号,形如:201211171658000001
但是在js中对订单号进行处理时发生了一个bug,就是js会对长度较长的数字进行处理。可以使用谷歌浏览器中的console.log();进行测试,结果如下:
console.log(20121117173100001);
20121117173100000 最后一位1被处理成了0
console.log(9999999999999999);
10000000000000000 值加了1
结论:对于此现象的原因还没找到,但是为了保险起见,我们在处理长度较长的数字时,最好是把数字在js转成字符串类型,这样就不会造成值不对的情况了。