我用 new Date().getTime() 显示的是 1410686873996 这样 13位
我看有些网站上是 1410686211 这样的,10位
这个是怎么来的,怎么把 1410686873996 变成 10 位的
我这个显示的成了44809年了
我用 new Date().getTime() 显示的是 1410686873996 这样 13位
我看有些网站上是 1410686211 这样的,10位
这个是怎么来的,怎么把 1410686873996 变成 10 位的
我这个显示的成了44809年了
13位数字,单位是毫秒
10位数字,单位是秒
Java
和JavaScript
都支持时间类型Date,他们的getTime
方法返回的是毫秒数。
10位数字有可能是C
中的ctime
等获得的,参考这篇文档http://linux.die.net/man/3/ctime
首先,如何判断一个表示时间的数字的单位是秒还是毫秒?
先说结论:
10位数字,单位是秒
13位数字,单位是毫秒
为什么:
一般计算机中表示时间的数字是指1970年1月1日到现在一共经历了多长时间(时间戳)。以现在2017年6月30号举例,从1970年到现在大约过去了47.5年。
那么以秒来计算
当前的时间戳大约为 47.5年 * 365天 * 24小时 * 60分钟 * 60 秒 = 1.49e9 ,也就是一个十位的数字。如果要变成一个十一位的数字,那大约还要花269年。
所以,当你看到一个表示时间10位数字,那么单位就是秒。
进一步推理,如果是毫秒值 = 秒 * 1000,所以毫秒是13位数字。
再回到你的问题,显然你是按秒为单位去处理了一个毫秒的值, 你只需要按照毫秒来处理这个数字就好了,或者先用这个毫秒值除以1000再按秒去处理,但这样会失去毫秒的精度。
可以看下这个
currentShiYanTime = new Date().getTime();
t = currentShiYanTime / 100;
$("#shiyan-time").text("已用时:" + (Math.floor(t / 36000)) + "时" + Math.floor((t % 36000) / 600) + "分" + ((t % 600) / 10).toFixed(1) + "秒");
15 回答8.2k 阅读
8 回答6k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.2k 阅读
2 回答3.8k 阅读
1 回答2.2k 阅读✓ 已解决
后面三位是毫秒,没用的话可以截下去,如果是Number就除以1000,如果是String就取前length-3位的子串。