Automatically convert all post times to local time using Javascript.

This commit is contained in:
Michael Save 2012-02-20 02:20:51 +11:00
parent 5d06fecfb7
commit e8bfdfd9c8
2 changed files with 40 additions and 2 deletions

View File

@ -460,6 +460,9 @@
// http://www.php.net/manual/en/function.strftime.php
$config['post_date'] = '%m/%d/%y (%a) %H:%M:%S';
// Automatically convert all post times to users' local time using Javascript.
$config['javascript_local_time'] = false;
// Same as above, but used for "you are banned' pages.
$config['ban_date'] = '%A %e %B, %Y';

View File

@ -168,8 +168,42 @@ function init_expanding() {
}
}
function init()
{
{% endraw %}
{% if config.javascript_local_time %}
{% raw %}
function init_localtime(){
var iso8601 = function iso8601(s) {
s = s.replace(/\.\d\d\d+/,""); // remove milliseconds
s = s.replace(/-/,"/").replace(/-/,"/");
s = s.replace(/T/," ").replace(/Z/," UTC");
s = s.replace(/([\+\-]\d\d)\:?(\d\d)/," $1$2"); // -04:00 -> -0400
return new Date(s);
};
var zeropad = function(num, count) {
return [Math.pow(10, count - num.toString().length), num].join('').substr(1);
};
var times = document.getElementsByTagName('time');
for (var i = 0; i < times.length ; i++) {
if(!times[i].textContent.match(/^\d+\/\d+\/\d+ \(\w+\) \d+:\d+:\d+$/)) {
continue;
}
var t = iso8601(times[i].getAttribute('datetime'));
times[i].textContent =
// date
zeropad(t.getMonth(), 2) + "/" + zeropad(t.getDate(), 2) + "/" + t.getFullYear().toString().substring(2) +
" (" + ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"][t.getDay()] + ") " +
// time
zeropad(t.getHours(), 2) + ":" + zeropad(t.getMinutes(), 2) + ":" + zeropad(t.getSeconds(), 2);
}
};
{% endraw %}
{% endif %}
{% raw %}
function init() {
newElement = document.createElement('div');
newElement.className = 'styles';
@ -192,6 +226,7 @@ function init()
highlightReply(window.location.hash.substring(1));
{% endraw %}{% if config.inline_expanding %}{% raw %}init_expanding();{% endraw %}{% endif %}{% raw %}
{% endraw %}{% if config.javascript_local_time %}{% raw %}init_localtime();{% endraw %}{% endif %}{% raw %}
}
var RecaptchaOptions = {