· 6 years ago · Aug 07, 2019, 02:38 PM
1### Template file:
2
3<!DOCTYPE html>
4<head>
5<title>[% meta.page_title %]</title>
6
7[% INCLUDE common.tt %]
8
9<script src="http://gerikson.com/js/pretty.js"></script>
10
11<script>
12window.onload = function(){
13 var links = document.getElementById("generated");
14
15 if ( links.getAttribute("timestamp")) {
16 var date = prettyDate(links.getAttribute("timestamp"));
17 if ( date )
18 links.innerHTML = date;
19 }
20};
21</script>
22
23### JS:
24
25/*
26 * JavaScript Pretty Date
27 * Copyright (c) 2008 John Resig (jquery.com)
28 * Licensed under the MIT license.
29 */
30
31// Takes an ISO time and returns a string representing how
32// long ago the date represents.
33function prettyDate(time){
34 var date = new Date((time || "").replace(/-/g,"/").replace(/[TZ]/g," ")\
35),
36 diff = (((new Date()).getTime() - date.getTime()) / 1000),
37 day_diff = Math.floor(diff / 86400);
38
39 if ( isNaN(day_diff) || day_diff < 0 || day_diff >= 31 )
40 return;
41
42 if ( day_diff == 0 )
43 {
44 hh = parseInt( diff / 3600 ) % 24;
45 mm = parseInt( diff / 60 ) % 60;
46 ss = diff % 60;
47
48 if ( hh == 0 && mm == 0 ) {
49 return "just now";
50 }
51
52 return (hh > 0 ? hh + "h " : "") + ( mm < 10 ? "0" + mm : mm ) + "m ago\
53";
54 } else {
55 return day_diff == 1 && "Yesterday" ||
56 day_diff < 7 && day_diff + " days ago" ||
57 day_diff < 31 && Math.ceil( day_diff / 7 ) + " weeks ago";
58 }
59
60}