(function($) { $.fn.jclock = function(options) { var version = '1.2.0'; var opts = $.extend({}, $.fn.jclock.defaults, options); return this.each(function() { $this = $(this); $this.timerID = null; $this.running = false; var o = $.meta ? $.extend({}, opts, $this.data()) : opts; $this.timeNotation = o.timeNotation; $this.am_pm = o.am_pm; $this.utc = o.utc; $this.utc_offset = o.utc_offset; $this.css({ fontFamily: o.fontFamily, fontSize: o.fontSize, backgroundColor: o.background, color: o.foreground }); $.fn.jclock.startClock($this); }); }; $.fn.jclock.startClock = function(el) { $.fn.jclock.stopClock(el); $.fn.jclock.displayTime(el); } $.fn.jclock.stopClock = function(el) { if(el.running) { clearTimeout(el.timerID); } el.running = false; } $.fn.jclock.displayTime = function(el) { var time = $.fn.jclock.getTime(el); el.html(time); el.timerID = setTimeout(function(){$.fn.jclock.displayTime(el)},1000); } $.fn.jclock.getTime = function(el) { var now = new Date(); var hours, minutes, seconds; var aDays=new Array("Sunday","Monday","Tuesday","Wednesday","Thursday", "Friday", "Saturday"); var aMonths=new Array("January","February","March","April","May", "June", "July", "August", "September", "October", "November", "December"); var days = now.getDay(); var date = now.getDate(); var month = now.getMonth(); var year = now.getFullYear(); var hours = now.getHours(); var minutes = now.getMinutes(); var seconds = now.getSeconds(); var am_pm_text = ''; (hours >= 12) ? am_pm_text = " P.M." : am_pm_text = " A.M."; if (el.timeNotation == '12h') { hours = ((hours > 12) ? hours - 12 : hours); } else if (el.timeNotation == '12hh') { hours = ((hours > 12) ? hours - 12 : hours); hours = ((hours < 10) ? "0" : "") + hours; } else { hours = ((hours < 10) ? "0" : "") + hours; } minutes = ((minutes < 10) ? "0" : "") + minutes; seconds = ((seconds < 10) ? "0" : "") + seconds; var timeNow = aDays[days] +", " +aMonths[month] + " " + date + ", " +year + " | " + hours + ":" + minutes + ":" + seconds; if ( (el.timeNotation == '12h' || el.timeNotation == '12hh') && (el.am_pm == true) ) { timeNow += am_pm_text; } return timeNow; }; $.fn.jclock.defaults = { timeNotation: '24h', am_pm: false, utc: false, fontFamily: '', fontSize: '', foreground: '', background: '', utc_offset: 0 }; })(jQuery);