Javascript 如何使用jQuery以秒为单位获取两个时间戳之间的时间差?

Javascript 如何使用jQuery以秒为单位获取两个时间戳之间的时间差?,javascript,jquery,time,seconds,timeago,Javascript,Jquery,Time,Seconds,Timeago,我想基于MySQL时间戳显示x秒前的 我找到了名为 但是我找不到一种方法让它只显示几秒钟 我只需要61秒,或者300秒。有没有办法用timeago或纯jQuery/JavaScript将输出转换为秒 谢谢你的帮助 编辑: 示例案例: $time1 = "2014-02-02 23:54:04"; // plus PHP ways to format it. //$time2 = NOW() , or date(); whatever. diff_in_days = parseInt((tim

我想基于MySQL时间戳显示x秒前的

我找到了名为

但是我找不到一种方法让它只显示几秒钟

我只需要61秒,或者300秒。有没有办法用timeago或纯jQuery/JavaScript将输出转换为秒

谢谢你的帮助

编辑: 示例案例:

$time1 = "2014-02-02 23:54:04"; // plus PHP ways to format it.
//$time2 = NOW() , or date(); whatever. 
diff_in_days = parseInt((timestamp_1 - timestamp2) / (1000 * 3600 * 24));
我只想知道自从
$time1
以来有多少秒

编辑2: 工作代码:

<script type="text/javascript">
$(function(){
    var d2 = new Date();
    var d1 = new Date("2014-02-02 23:54:04");
    $("a#timedif").html("Diff. Seconds : "+((d2-d1)/100).toString());
    // note that you may want to round the value
});
</script>

$(函数(){
var d2=新日期();
var d1=新日期(“2014-02-02 23:54:04”);
$((a#timedif”).html(“差秒:+((d2-d1)/100.toString());
//请注意,您可能希望对该值进行四舍五入
});

它输出
Diff.Seconds:NaN

假设您将字符串解析为JavaScript日期对象,您可以 (日期2-日期1)/1000

要解析mysql格式的时间戳,只需将字符串输入到new Date():

修正问题中的编辑2:

<script type="text/javascript">
$(function(){
var d2 = new Date();
var d1 = new Date("2014-02-02 23:54:04");
$("a#timedif").html("Diff. Seconds : "+((d2-d1)/1000).toString());
 });

$(函数(){
var d2=新日期();
var d1=新日期(“2014-02-02 23:54:04”);
$((a#timedif”).html(“差秒:+((d2-d1)/1000.toString());
});

如果您对该插件还满意,您可以稍微修改它,使其只需几秒钟即可使用

  var words = seconds < 45 && substitute($l.seconds, Math.round(seconds)) ||
    seconds < 90 && substitute($l.minute, 1) ||
    minutes < 45 && substitute($l.minutes, Math.round(minutes)) ||
    minutes < 90 && substitute($l.hour, 1) ||
    hours < 24 && substitute($l.hours, Math.round(hours)) ||
    hours < 42 && substitute($l.day, 1) ||
    days < 30 && substitute($l.days, Math.round(days)) ||
    days < 45 && substitute($l.month, 1) ||
    days < 365 && substitute($l.months, Math.round(days / 30)) ||
    years < 1.5 && substitute($l.year, 1) ||
    substitute($l.years, Math.round(years));
var words=seconds<45&&substitute($l.seconds,Math.round(seconds))||
秒<90和替换($1.min,1)||
分钟<45分和替换($l.minutes,Math.round(分钟))||
分钟数<90和替换($1小时,1)||
小时数<24小时和替换($1小时,数学四舍五入(小时))||
小时数<42和替换($1天,1)||
天数<30天和替换($1天,数学四舍五入(天))||
天数<45天和替换($1个月,1)||
天数<365天和替换($1个月,数学四舍五入(天/30))||
年数<1.5和替换($1年,1)||
替代(1年,数学四舍五入(年));
使用此部件时,只需转换为秒


请参阅fiddle:

jQuery只是一个JavaScript库,因此JavaScript将仅在jQuery脚本中工作:

// specified date:
var oneDate = new Date("November 02, 2017 06:00:00");

// number of milliseconds since midnight Jan 1 1970 till specified date
var oneDateMiliseconds = oneDate.getTime();

// number of milliseconds since midnight Jan 1 1970 till now
var currentMiliseconds = Date.now(); 

// return time difference in milliseconds
var timePassedInMilliseconds = (currentMiliseconds-oneDateMiliseconds)/1000;
alert(timePassedInMilliseconds);

我使用时差分别计算每个值

var start = new Date('Mon Jul 30 2018 19:35:35 GMT+0500');
var end = new Date('Mon Jul 30 2018 21:15:00 GMT+0500');

var hrs = end.getHours() - start.getHours();
var min = end.getMinutes() - start.getMinutes(); 
var sec = end.getSeconds() - start.getSeconds();  

var hour_carry = 0;
var minutes_carry = 0;
if(min < 0){
       min += 60;
       hour_carry += 1;
   }
hrs = hrs - hour_carry;
if(sec < 0){
       sec += 60;
       minutes_carry += 1;
   }

min = min - minutes_carry;

console.log("hrs",hrs);
console.log("min",min);
console.log("sec",sec);
console.log(hrs + "hrs " + min +"min " + sec + "sec");
var开始=新日期('2018年7月30日星期一19:35:35 GMT+0500');
var end=新日期(“2018年7月30日星期一21:15:00 GMT+0500”);
var hrs=end.getHours()-start.getHours();
var min=end.getMinutes()-start.getMinutes();
var sec=end.getSeconds()-start.getSeconds();
var hour_进位=0;
var分钟数_进位=0;
如果(最小值<0){
最小值+=60;
小时进位+=1;
}
小时数=小时数-小时数;
如果(秒<0){
sec+=60;
分钟进位+=1;
}
最小值=最小值-进位时的分钟数;
控制台日志(“小时”,小时);
console.log(“min”,min);
控制台日志(“秒”,秒);
控制台日志(小时+小时+分钟+分钟+秒+秒);

获取中两个时间戳之间的差异

秒:(按新日期获取时间戳().getTime())

天数:

$time1 = "2014-02-02 23:54:04"; // plus PHP ways to format it.
//$time2 = NOW() , or date(); whatever. 
diff_in_days = parseInt((timestamp_1 - timestamp2) / (1000 * 3600 * 24));

请看:您是否设法以JS对象的形式获取时间戳?如果是这样,那是什么样的物体?@impinball不,但那没问题。我可以用PHP将
回送到
标记中。编辑:我不知道。我将根据JS函数的需要使用PHP进行格式化。代码蟾蜍谢谢。举个例子就是一个很好的答案!请提供两个示例日期字符串。有关解析后的操作,请参见下面的答案。我添加了示例案例。不知道如何解析成JS。让我谷歌一下:)那是哪个插件?您确定没有忘记任何东西(如
$l
替换
)?如何修改它?这是来自
timeago
plugin的,它只是一个副本,您需要在其中做出最完美的修改。有没有办法用当前日期时间构造d2?当前时间只是新的日期()没有那么简单的参数:)让我试着接受你的答案。如果你从服务器获取一个日期,从客户端获取另一个日期,你需要确保两者都在同一时区,例如UTCYes。也许我会用SELECT NOW()从MySQL获取日期:但我得到的是NaN。请参见问题中的编辑2。