繁体   English   中英

使用jquery将确切的日期转换为时间 - 日期的格式是什么?

[英]Convert exact date to time ago using jquery - What format for the date?

我有一个静态页面,它将指定一个硬编码的确切日期。 如果使用javascript,我想将此硬编码的确切日期转换为“time ago”。

例如:

3 hours ago

我的问题是,以什么格式的日期将javascript能够最有效地转换到前一段时间?

  • 13年10月10日
  • 10.10.13
  • 2013年10月10日
  • 101013

我会看看这篇文章: https//stackoverflow.com/a/3177838/2895307

在其中,他只使用javascript Date()作为“timeSince()”函数的参数。 要从硬编码字符串创建javascript日期,您可以使用以下格式:

var d1 = new Date(“1975年10月13日11:13:00”)

绝对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

我希望这会有所帮助,欢呼!

最简单的方法是使用Date.getTime()

这将为您提供自Unix时代以来的毫秒数,并使数学变得非常简单。

Date.getTime

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM