Greasy Fork is available in English.

Popmundo Forum Post Timestamp

The script run only on forms pages and show timestamps of messages

// ==UserScript==
// @name         Popmundo Forum Post Timestamp
// @description  The script run only on forms pages and show timestamps of messages

// @author       Criyessei
// @version      1.0.0

// @include      /^https?://\d+.popmundo.com/Forum/Popmundo.aspx/Thread/*/

// @grant        unsafeWindow
// @require      https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js

// @namespace https://greasyfork.org/users/805141
// ==/UserScript==

/*globals moment*/

let $ = unsafeWindow.jQuery;
let displayPreference = {
    1: "left",
    2: "onTimeText"
}[2];

(async function() {
    'use strict';

    await sleep(100);

    let messages = $('#ppm-content >div.marginWrapper >.tb:has(>.tbfblr)');
    let timeText2Date = timeText=>{
        let {groups:{day, month, year, hour, minute}} = timeText.trim().match(/(?<day>\d{1,2})\.(?<month>\d{1,2})\.(?<year>\d{4}),\s(?<hour>\d{1,2}):(?<minute>\d{1,2})/);
        return new Date(year, month-1, day, hour, minute);
    }

    for(let i=0, len=messages.length; i<len; i++){
        let message = messages.eq(i);

        // 1
        let p1 = message.find('>.tbc >div >p.em');
        if(p1.length){
            let timeEl1 = p1.contents().last()[0];
            let label1 = moment(timeText2Date(timeEl1.textContent)).fromNow();
            p1.append(` <span style="font-family:monospace; font-size:12px; vertical-allign:middle; color:maroon; white-space:nowrap;">(${label1})</span>`);
        }

        // 2
        let p2 = message.find('>.tbfblr p:first');
        let timeEl2 = p2.contents().last()[0];
        let label2 = moment(timeText2Date(timeEl2.textContent)).fromNow();

        //DISPLAY
        if(displayPreference == "left"){
            let span = $(`<span style=" position: absolute; top: 0; font-size:11px; color:maroon; writing-mode: vertical-rl; /* text-orientation: upright; */ /* z-index: 2; */ ">${label2}</span>`).appendTo(message);
            message.css({'overflow':'unset', 'position':'relative'});
            console.log(message.find('>div:first').height()+" - "+span.height());
            span.css('top', Math.max(3, parseInt((message.find('>div:first').height()-span.height())/2)))
                .css('left', -13-(span.width()-13.6));
        }
        else if(displayPreference == "onTimeText"){
            p2.append(` <span style="font-family:monospace; font-size:12px; vertical-allign:middle; color:maroon; white-space:nowrap;">(${label2})</span>`);
        }
    }


})();

function sleep(ms=1e3){
    return new Promise(res=> setTimeout(()=>res(), ms));
}