我有一个静态页面,它将指定一个硬编码的确切日期。如果使用了javascript,我想将这个硬编码的确切日期转换为“之前的时间”。
例如:
3 hours ago
我的问题是,以什么格式的日期将javascript能够最有效地转换为前一段时间?
答案 0 :(得分:2)
我会看一下这篇文章:https://stackoverflow.com/a/3177838/2895307
在其中,他只使用javascript Date()作为“timeSince()”函数的参数。要从硬编码字符串创建javascript日期,您可以使用以下格式:
var d1 =新日期(“1975年10月13日11:13:00”)
答案 1 :(得分:1)
绝对unix时间戳是所有日期和时间计算的最佳格式,您可以稍后将结果转换为更易读的格式。
计算很简单,您可以从过去事件的时间戳开始,例如:
var anHourAgo = Date.now() - 3600000;
然后从当前时间戳中减去该值,并获得自该事件以来经过的毫秒数
Date.now() - anHourAgo
然后你可以将它传递给任何将这些毫秒转换为小时,分钟和秒的函数,这是一个需要几秒钟并返回带有该信息的数组的示例,另一个用零填充这些数字的函数
var zeroPad = function(n){
return n.toString().replace(/^(\d)$/,'0$1');
};
var formatSecs = function(s){
var r = [
Math.floor(s / 3600),
Math.floor(s%3600 / 60),
Math.floor((s%3600)%60)
];
r.push(zeroPad(r[0])+':'+zeroPad(r[1])+':'+zeroPad(r[2]));
return r;
};
formatSecs函数需要秒而不是毫秒,你应该除以1000并舍入该数字,然后将该数字传递给函数
Math.round(Date.now() - anHourAgo) / 1000
最后,这是所有代码的实际示例:
http://codepen.io/DavidVValdez/pen/axHGj
我希望这会有所帮助,欢呼!
答案 2 :(得分:0)