我想要一个表示当前日期和时间的数字,比如Unix时间戳。
当前回答
我在这个答案中提供了多种解决方案和描述。如果有任何不清楚的地方,请随时提问
快速和肮脏的解决方案:
Date.now() /1000 |0
警告:如果您使用|0魔法,它可能会在2038年中断并返回负数。此时改用Math.floor()
Math.floor()解决方案:
Math.floor(Date.now() /1000);
德里克的书呆子替代品朕會功夫 摘自以下评论:
new Date/1e3|0
Polyfill以获取Date.now()工作:
要使其在IE中工作,您可以执行以下操作(MDN的Polyfill):
if (!Date.now) {
Date.now = function now() {
return new Date().getTime();
};
}
如果您不关心年份/星期几/夏时制,您需要记住2038年之后的日期:
按位操作将导致使用32位整数而不是64位浮点。
您需要将其正确使用为:
Math.floor(Date.now() / 1000)
如果您只想知道从代码第一次运行时起的相对时间,可以使用以下内容:
const relativeTime = (() => {
const start = Date.now();
return () => Date.now() - start;
})();
在使用jQuery的情况下,可以使用$.now(),如jQuery的Docs中所述,这会使polyfill过时,因为$.now()在内部执行相同的操作:(newDate).getTime()
如果您对jQuery的版本感到满意,请考虑放弃这个答案,因为我自己没有找到它。
现在对|0的作用做一个小小的解释:
通过提供|,您可以告诉解释器执行二进制OR运算。位操作需要将Date.now()/1000的十进制结果转换为整数的绝对数。
在转换过程中,小数被删除,结果与使用Math.floor()输出的结果类似。
不过,请注意:它会将64位的双精度转换为32位的整数。这将导致处理大量数据时信息丢失。2038年后,由于32位整数溢出,时间戳将中断,除非Javascript在严格模式下移动到64位整数。
有关Date.now的更多信息,请点击以下链接:Date.now()@MDN
其他回答
console.log(newDate().valueOf());//返回自epoch以来的毫秒数
JavaScript的工作时间是从纪元开始的毫秒数,而大多数其他语言的工作时间都是秒。您可以使用毫秒来工作,但只要您传递一个值来表示PHP,PHP本机函数可能就会失败。所以,为了确保我总是使用秒,而不是毫秒。
这将为您提供Unix时间戳(以秒为单位):
var unix = Math.round(+new Date()/1000);
这将为您提供自纪元以来的毫秒数(而不是Unix时间戳):
var milliseconds = new Date().getTime();
要分别获得时间、月、日、年,这将起作用
var currentTime = new Date();
var month = currentTime.getMonth() + 1;
var day = currentTime.getDate();
var year = currentTime.getFullYear();
我还没见过
Math.floor(Date.now() / 1000); // current time in seconds
另一个我还没看到的是
var _ = require('lodash'); // from here https://lodash.com/docs#now
_.now();
对于微秒分辨率的时间戳,有性能。现在:
function time() {
return performance.now() + performance.timing.navigationStart;
}
例如,这可能产生1436140826653.139,而Date.now仅产生143614086653。
推荐文章
- ReactJS和公共文件夹中的图像
- 在React Native中使用Fetch授权头
- 为什么我的球(物体)没有缩小/消失?
- 如何使用jQuery检测页面的滚动位置
- if(key in object)或者if(object. hasownproperty (key)
- 一元加/数字(x)和parseFloat(x)之间的区别是什么?
- angularjs中的compile函数和link函数有什么区别
- 删除绑定中添加的事件监听器
- 很好的初学者教程socket.io?
- 在Android应用程序中显示当前时间和日期
- 字符串不能识别为有效的日期时间“格式dd/MM/yyyy”
- HtmlSpecialChars在JavaScript中等价于什么?
- 如何转换日期时间?将日期时间
- React: 'Redirect'没有从' React -router-dom'中导出
- 如何在React中使用钩子强制组件重新渲染?