I want to display x seconds ago
based on a MySQL Timestamp.
我想基于MySQL时间戳显示x秒前。
I found the plugin called timeago
我找到了名为timeago的插件
But I cannot find a way to make it display only seconds.
但我找不到让它只显示秒的方法。
I'm OK with 61 seconds, or 300 seconds. Any way to convert the output to seconds with timeago, or with pure jQuery / JavaScript ?
61秒或300秒我没问题。有没有办法使用timeago或纯jQuery / JavaScript将输出转换为秒?
Thanks for any help !
谢谢你的帮助 !
Edit:
Sample Case :
示例案例:
$time1 = "2014-02-02 23:54:04"; // plus PHP ways to format it.
//$time2 = NOW() , or date(); whatever.
I just want to get how many seconds since $time1
.
我只想得到自$ time1以来的秒数。
Edit 2:
Working code :
工作代码:
<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>
It outputs Diff. Seconds : NaN
它输出Diff。秒:NaN
4 个解决方案
#1
13
assuming you parse the string into JavaScript date object, you can do (date2 - date1)/1000
假设您将字符串解析为JavaScript日期对象,则可以执行(date2 - date1)/ 1000
to parse mysql format timestamp, just feed the string into new Date():
解析mysql格式的时间戳,只需将字符串输入新的Date():
var d2 = new Date('2038-01-19 03:14:07');
var d1 = new Date('2038-01-19 03:10:07');
var seconds = (d2- d1)/1000;
fix of edit 2 in the question:
修复了问题中的编辑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());
});
#2
1
If you are okay with that plugin you can modify it a little bit to work with seconds only
如果您对该插件没问题,可以稍微修改它以仅使用秒
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));
with this part, go only with converting to seconds
使用此部分,只需转换为秒
see the fiddle: http://jsfiddle.net/zGXLU/1/
看到小提琴:http://jsfiddle.net/zGXLU/1/
#3
0
jQuery is just a JavaScript library so JavaScript will just work within your jQuery script:
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);
#4
0
My working with time difference for calculating each value separately
我使用时差来分别计算每个值
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");
#1
13
assuming you parse the string into JavaScript date object, you can do (date2 - date1)/1000
假设您将字符串解析为JavaScript日期对象,则可以执行(date2 - date1)/ 1000
to parse mysql format timestamp, just feed the string into new Date():
解析mysql格式的时间戳,只需将字符串输入新的Date():
var d2 = new Date('2038-01-19 03:14:07');
var d1 = new Date('2038-01-19 03:10:07');
var seconds = (d2- d1)/1000;
fix of edit 2 in the question:
修复了问题中的编辑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());
});
#2
1
If you are okay with that plugin you can modify it a little bit to work with seconds only
如果您对该插件没问题,可以稍微修改它以仅使用秒
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));
with this part, go only with converting to seconds
使用此部分,只需转换为秒
see the fiddle: http://jsfiddle.net/zGXLU/1/
看到小提琴:http://jsfiddle.net/zGXLU/1/
#3
0
jQuery is just a JavaScript library so JavaScript will just work within your jQuery script:
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);
#4
0
My working with time difference for calculating each value separately
我使用时差来分别计算每个值
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");