>>13
- Identify all the timestamps you want updated. For example, post timestamps live in skin/*/post.txt as <%DATE%>.
- Wrap <%DATE%> in a span for easy lookup and tag it with a fresh class name.
- Find the places where timestamps are filled out. For example, post timestamps are filled out in include.php:PrintPost.
- Add the (milli)seconds since the epoch to a data attribute of the wrapper span.
- Create a javascript file and link it in the head of every view with timestamps, e.g. skin/*/threadtop.txt. Tell your server to serve it statically.
- Create an overall timestamp update function. Either invoke it at the bottom of every view with timestamps or add a scheduled invocation when the DOM has loaded into the head section.
- In the overall timestamp update function retrieve all elements with the fresh tagging class from above, loop over them and hand them off to an item update function.
- In the item update function retrieve the data attribute holding the (milli)seconds since the epoch, rebuild that date/time, get its local components and use them to rewrite the contents of the currently processed span.
- You now have client-side local timezone timestamps.