-
-
Save mattpass/2900665 to your computer and use it in GitHub Desktop.
| <span id="serverDT"></span> | |
| <script> | |
| var nDT = <?php echo time()*1000; ?>; | |
| setInterval(function(){ | |
| var s=(new Date(nDT+=1e3)+'').split(' '), | |
| d=s[2]*1, | |
| t=s[4].split(':'), | |
| p=t[0]>11?'pm':'am', | |
| e=d%20==1|d>30?'st':d%20==2?'nd':d%20==3?'rd':'th'; | |
| t[0]=--t[0]%12+1; | |
| document.getElementById('serverDT').innerHTML=[s[0],d+e,s[1],s[3],t.join(':')+p].join(' '); | |
| },1000); | |
| </script> |
377 chars now thanks to @maettig. Some v good changes, only drawback I can see is getting rid of the function so you see nothing for the first 1 sec and am I right in thinking those vars leak to global?
(As I understand it.... var a=1,b=2 ...b leaks to global? Or is it nothing escapes from anon functions?)
No, var a=1,b=2 does not leak. To fix the delay you can put something like <?php echo strftime("..."); ?> in the <span>. Edit: I saved another two bytes in the code above.
@maettig Mmmm OK, I'm sure someone told me doing that leaks? Oh well, learnt something as well then :)
Don't mind the delay (gives the appearance of actually linking in with the server) ;)
Am integrating this as a final solution into ICEcoder today. Many thanks!
I know you're aiming for a specific format but why not let the end user in control and use the locale Date format ?
<span id="serverDT"></span>
<script>
var nDT = <?php echo time() * 1000; ?>;
setInteval("document.getElementById('serverDT').textContent=new Date(nDT+=1e3).toLocaleString()",1000);
</script>
@p01 Good point. I chose that format because it looks a little nicer than the regular Date output. In the bigger scheme of things I don't mind the extra 100 bytes or so on my IDE to have this format.
@maettig Good spot, updated.
Sure. I did an update to my code above.