Я хочу отобразить дату и время в тексте, и мне нравится средство форматирования moment.js. Я использую php, чтобы отобразить текущую дату, но не нашел хорошего форматера времени назад, поэтому я хочу использовать moment.js.
Я думал о повторении {12345678}
как метка времени unix на моей html-странице, а затем с помощью jquery заменить каждый токен после форматирования с помощью moment.js. fromNow()
функция для документа.
Это хорошее решение? Если это так, как я могу перебрать все токены, обработать даты, а затем заменить содержимое?
Я прочитал о том, как использовать replaceWith()
а также replace
, но они не позволяют мне обрабатывать токен.
Это может быть далеким подходом, так как может быть простой помощник форматера PHP-времени назад …
Есть идеи?
Так….
Вот мое решение.
JS:
// time formatter
$( "[data-time-format]" ).each(function() {
var el = $( this );
switch(el.attr("data-time-format")) {
case "time-ago":
var timeValue = el.attr("data-time-value")
var strTimeAgo = moment.unix(timeValue).fromNow();
el.text(strTimeAgo);
break;
}
});
HTML:
<span data-time-format="time-ago" data-time-value="{UNIX TIMESTAMP}"></span>
Этот фрагмент кода Js проходит по всем элементам с атрибутом «data-time-format», а затем использует оператор switch для обработки. Я использую переключатель, так как я буду использовать этот атрибут данных для другой обработки меток времени, поэтому мне нужна гибкость.
Js должны быть размещены в document.ready.
Других решений пока нет …