Как получить разницу во времени между двумя метками времени в секундах с помощью jQuery?
Я хочу отобразить x seconds ago
на основе временной отметки MySQL.
Я нашел плагин под названием timeago
Но я не могу найти способ заставить его отображать только секунды.
Я в порядке с 61 секундой или 300 секундами. Любой способ конвертировать вывод в секундах с помощью timeago или с помощью чистого jQuery/JavaScript?
Спасибо за любую помощь!
Изменить:
Пример:
$time1 = "2014-02-02 23:54:04"; // plus PHP ways to format it.
//$time2 = NOW() , or date(); whatever.
Я просто хочу узнать, сколько секунд прошло с $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>
Он выводит Diff. Seconds : NaN
Ответы
Ответ 1
предполагая, что вы разбираете строку в объекте даты JavaScript, вы можете сделать
(дата2 - дата1)/1000
чтобы проанализировать временную метку формата 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;
исправление редактирования 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
Если вы в порядке с этим плагином, вы можете немного изменить его для работы только с секундами
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));
с этой частью, перейдите только с преобразованием в секунды
см. скрипту: http://jsfiddle.net/zGXLU/1/
Ответ 3
jQuery - это просто библиотека JavaScript, поэтому JavaScript будет работать только в вашем jQuery script:
// 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);