Сделайте обновление timeago живым
Я использую плагин timeago, и мне нужно, чтобы он обновлялся автоматически, чтобы при обновлении времени на странице он обновлялся.
Вот стандартный JQuery, который мы просим разместить на наших страницах:
jQuery(document).ready(function() {
jQuery("abbr.timeago").timeago();
});
Моя текущая проблема заключается в том, что, когда я передаю новое время из файла PHP с помощью Ajax, он не использует плагин timeago (он остается в качестве даты, 2013-10-28
, скорее, чем 1 second ago
, так далее).
Вот тот Аякс, который у меня есть сейчас:
<script src="assets/js/jquery.js"></script>
<script src="assets/js/timeago.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$(document).on("submit", "form", function(event) {
event.preventDefault();
$.ajax({
url: 'post.php',
type: 'POST',
dataType: 'json',
data: $(this).serialize(),
success: function(data) {
$(".container").html(data.message);
}
});
});
});
$(document).ready(function() {
$("abbr.timeago").timeago();
});
</script>
post.php
файл, вызываемый Ajax:
<?php
$code = '<abbr class="timeago" title="2008-07-17T09:24:17Z">July 17, 2008</abbr>';
$array = array('message' => $code);
echo $array;
?>
Когда вызывается функция Ajax, она возвращает $code
HTML, но он печатает July 17, 2008
на странице, а не 5 years ago
,
1 ответ
Вам нужно указать некоторое время загрузки либо в вашем классе (loaded
или же modified
, возможно) или дата / время в title
атрибут элемента. Проверьте свой HTML
Например, это:
<abbr class="timeago" title="2008-07-17T09:24:17Z">July 17, 2008</abbr>
станет таким:
<abbr class="timeago" title="2008-07-17T09:24:17Z">about 5 years ago</abbr>