@MJ My solution. For demo you can look at my forum (russian language)
WARNING!!! It is dirty solution (change source code may cause problem with updating in future, you must know how to solve it) and I am not recommend use it, if you didn't understand what you do. Solution without localization, use it only if your forum use only one language (or change code and use number month)
1. Set cutoff settings for timeago library
Open acp > custom HTML&CSS > Custom Header
and add this:
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery.timeago.settings.cutoff = 2419200000;
});
</script>
In this example I set 28 days for relative date (1000 * 60 * 60 * 24 * 28 = 2419200000), you can change it.
Didn't forget turn on checkbutton "Enable Custom Header" and save changes. After this, all dates older 28 days become unvisible.
2 Change timeago library
Onen file public/vendor/jquery/timeago
and this code:
if (!isNaN(data.datetime)) {
if ( $s.cutoff == 0 || Math.abs(distance(data.datetime)) < $s.cutoff) {
$(this).text(inWords(data.datetime));
}
}
replace to this:
if (!isNaN(data.datetime)) {
if ( $s.cutoff === 0 || Math.abs(distance(data.datetime)) < $s.cutoff) {
$(this).text(inWords(data.datetime));
} else {
var monthNames = [
"Jan", "Feb", "Mar",
"Apr", "May", "June",
"July", "Aug", "Sept",
"Oct", "Nov", "Dec"
];
var day = data.datetime.getDate()
var year = data.datetime.getFullYear();
var monthIndex = data.datetime.getMonth();
var hours = ("0" + data.datetime.getHours()).slice(-2);
var minutes = ("0" + data.datetime.getMinutes()).slice(-2);
$(this).text(day + ' ' + monthNames[monthIndex] + ' ' + year + ' ' + hours + ':' + minutes);
}
}
3. Restart forum
All must work fine
Revert changes back
If you need revert changes, you can do it with command
git checkout /public/vendor/jquery/timeago/jquery.timeago.js
And remove added text from acp > custom HTML&CSS > Custom Header