Note that there are some explanatory texts on larger screens.

plurals
  1. POReally noobish javascript problem
    primarykey
    data
    text
    <p>So I'm using this thing called timeago. For those who don't know it, can be found here. <a href="http://timeago.yarp.com/" rel="nofollow">http://timeago.yarp.com/</a></p> <p>It's pretty cool, but I want to add the word "happened". How can I add the word "Happened" at the beginning of every "ago" phrase? So instead of saying "3 minutes ago" it'd say "happened 3 minutes ago". Instead of "less than a minute ago", it'd say "happened less than a minute ago".</p> <p>Thanks!</p> <pre><code>(function($) { $.timeago = function(timestamp) { if (timestamp instanceof Date) { return inWords(timestamp); } else if (typeof timestamp === "string") { return inWords($.timeago.parse(timestamp)); } else { return inWords($.timeago.datetime(timestamp)); } }; var $t = $.timeago; $.extend($.timeago, { settings: { refreshMillis: 60000, allowFuture: false, strings: { prefixAgo: null, prefixFromNow: null, suffixAgo: "ago", suffixFromNow: "from now", seconds: "less than a minute", minute: "about a minute", minutes: "%d minutes", hour: "about an hour", hours: "about %d hours", day: "a day", days: "%d days", month: "about a month", months: "%d months", year: "about a year", years: "%d years", numbers: [] } }, inWords: function(distanceMillis) { var $l = this.settings.strings; var prefix = $l.prefixAgo; var suffix = $l.suffixAgo; if (this.settings.allowFuture) { if (distanceMillis &lt; 0) { prefix = $l.prefixFromNow; suffix = $l.suffixFromNow; } distanceMillis = Math.abs(distanceMillis); } var seconds = distanceMillis / 1000; var minutes = seconds / 60; var hours = minutes / 60; var days = hours / 24; var years = days / 365; function substitute(stringOrFunction, number) { var string = $.isFunction(stringOrFunction) ? stringOrFunction(number, distanceMillis) : stringOrFunction; var value = ($l.numbers &amp;&amp; $l.numbers[number]) || number; return string.replace(/%d/i, value); } var words = seconds &lt; 45 &amp;&amp; substitute($l.seconds, Math.round(seconds)) || seconds &lt; 90 &amp;&amp; substitute($l.minute, 1) || minutes &lt; 45 &amp;&amp; substitute($l.minutes, Math.round(minutes)) || minutes &lt; 90 &amp;&amp; substitute($l.hour, 1) || hours &lt; 24 &amp;&amp; substitute($l.hours, Math.round(hours)) || hours &lt; 48 &amp;&amp; substitute($l.day, 1) || days &lt; 30 &amp;&amp; substitute($l.days, Math.floor(days)) || days &lt; 60 &amp;&amp; substitute($l.month, 1) || days &lt; 365 &amp;&amp; substitute($l.months, Math.floor(days / 30)) || years &lt; 2 &amp;&amp; substitute($l.year, 1) || substitute($l.years, Math.floor(years)); return $.trim([prefix, words, suffix].join(" ")); }, parse: function(iso8601) { var s = $.trim(iso8601); 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 -&gt; -0400 return new Date(s); }, datetime: function(elem) { // jQuery's `is()` doesn't play well with HTML5 in IE var isTime = $(elem).get(0).tagName.toLowerCase() === "time"; // $(elem).is("time"); var iso8601 = isTime ? $(elem).attr("datetime") : $(elem).attr("title"); return $t.parse(iso8601); } }); $.fn.timeago = function() { var self = this; self.each(refresh); var $s = $t.settings; if ($s.refreshMillis &gt; 0) { setInterval(function() { self.each(refresh); }, $s.refreshMillis); } return self; }; function refresh() { var data = prepareData(this); if (!isNaN(data.datetime)) { $(this).text(inWords(data.datetime)); } return this; } function prepareData(element) { element = $(element); if (!element.data("timeago")) { element.data("timeago", { datetime: $t.datetime(element) }); var text = $.trim(element.text()); if (text.length &gt; 0) { element.attr("title", text); } } return element.data("timeago"); } function inWords(date) { return $t.inWords(distance(date)); } function distance(date) { return (new Date().getTime() - date.getTime()); } // fix for IE6 suckage document.createElement("abbr"); document.createElement("time"); }(jQuery)); </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload