142 lines
3.6 KiB
JavaScript
142 lines
3.6 KiB
JavaScript
|
// JavaScript Document
|
||
|
(function($) {
|
||
|
$.fn.jclock = function(options) {
|
||
|
$.fn.jclock.timerID = null;
|
||
|
$.fn.jclock.running = false;
|
||
|
$.fn.jclock.el = null;
|
||
|
var version = '0.1.1';
|
||
|
// Download by http://www.codefans.net
|
||
|
// options
|
||
|
var opts = $.extend({}, $.fn.jclock.defaults, options);
|
||
|
|
||
|
return this.each(function() {
|
||
|
$this = $(this);
|
||
|
$.fn.jclock.el = $this;
|
||
|
|
||
|
var o = $.meta ? $.extend({}, opts, $this.data()) : opts;
|
||
|
|
||
|
$.fn.jclock.withDate = o.withDate;
|
||
|
$.fn.jclock.withWeek = o.withWeek;
|
||
|
$.fn.jclock.timeNotation = o.timeNotation;
|
||
|
$.fn.jclock.am_pm = o.am_pm;
|
||
|
$.fn.jclock.utc = o.utc;
|
||
|
|
||
|
$this.css({
|
||
|
fontFamily: o.fontFamily,
|
||
|
fontSize: o.fontSize,
|
||
|
backgroundColor: o.background,
|
||
|
color: o.foreground
|
||
|
});
|
||
|
|
||
|
$.fn.jclock.startClock();
|
||
|
|
||
|
});
|
||
|
};
|
||
|
|
||
|
$.fn.jclock.startClock = function() {
|
||
|
$.fn.jclock.stopClock();
|
||
|
$.fn.jclock.displayTime();
|
||
|
}
|
||
|
$.fn.jclock.stopClock = function() {
|
||
|
if($.fn.jclock.running) {
|
||
|
clearTimeout(timerID);
|
||
|
}
|
||
|
$.fn.jclock.running = false;
|
||
|
}
|
||
|
$.fn.jclock.displayTime = function(el) {
|
||
|
var date = $.fn.jclock.getDate();
|
||
|
var week = $.fn.jclock.getWeek();
|
||
|
var time = $.fn.jclock.getTime();
|
||
|
$.fn.jclock.el.html(date + week + time);
|
||
|
timerID = setTimeout("$.fn.jclock.displayTime()",1000);
|
||
|
}
|
||
|
$.fn.jclock.getDate = function() {
|
||
|
if($.fn.jclock.withDate == true) {
|
||
|
var now = new Date();
|
||
|
var year, month, date;
|
||
|
|
||
|
if($.fn.jclock.utc == true) {
|
||
|
year = now.getUTCFullYear();
|
||
|
month = now.getUTCMonth() + 1;
|
||
|
date = now.getUTCDate();
|
||
|
} else {
|
||
|
year = now.getFullYear();
|
||
|
month = now.getMonth() + 1;
|
||
|
date = now.getDate();
|
||
|
}
|
||
|
|
||
|
month = ((month < 10) ? "0" : "") + month;
|
||
|
date = ((date < 10) ? "0" : "") + date;
|
||
|
|
||
|
var dateNow = year + "-" + month + "-" + date + " ";
|
||
|
} else {
|
||
|
var dateNow = "";
|
||
|
}
|
||
|
return dateNow;
|
||
|
}
|
||
|
$.fn.jclock.getWeek = function() {
|
||
|
if($.fn.jclock.withWeek == true) {
|
||
|
var now = new Date();
|
||
|
var week;
|
||
|
|
||
|
if($.fn.jclock.utc == true) {
|
||
|
week = now.getUTCDay();
|
||
|
} else {
|
||
|
week = now.getDay();
|
||
|
}
|
||
|
|
||
|
$.each(["日","一","二","三","四","五","六"],function(i,n) {
|
||
|
if(i == week) {week = n; return;}
|
||
|
});
|
||
|
|
||
|
var weekNow = "周" + week + " ";
|
||
|
} else {
|
||
|
var weekNow = "";
|
||
|
}
|
||
|
return weekNow;
|
||
|
}
|
||
|
$.fn.jclock.getTime = function() {
|
||
|
var now = new Date();
|
||
|
var hours, minutes, seconds;
|
||
|
|
||
|
if($.fn.jclock.utc == true) {
|
||
|
hours = now.getUTCHours();
|
||
|
minutes = now.getUTCMinutes();
|
||
|
seconds = now.getUTCSeconds();
|
||
|
} else {
|
||
|
hours = now.getHours();
|
||
|
minutes = now.getMinutes();
|
||
|
seconds = now.getSeconds();
|
||
|
}
|
||
|
|
||
|
if ($.fn.jclock.timeNotation == '12h') {
|
||
|
hours = ((hours > 12) ? hours - 12 : hours);
|
||
|
} else {
|
||
|
hours = ((hours < 10) ? "0" : "") + hours;
|
||
|
}
|
||
|
|
||
|
minutes = ((minutes < 10) ? "0" : "") + minutes;
|
||
|
seconds = ((seconds < 10) ? "0" : "") + seconds;
|
||
|
|
||
|
var timeNow = hours + ":" + minutes + ":" + seconds;
|
||
|
if ( ($.fn.jclock.timeNotation == '12h') && ($.fn.jclock.am_pm == true) ) {
|
||
|
timeNow += (hours >= 12) ? " P.M." : " A.M."
|
||
|
}
|
||
|
|
||
|
return timeNow;
|
||
|
};
|
||
|
|
||
|
// plugin defaults
|
||
|
$.fn.jclock.defaults = {
|
||
|
withDate:false,
|
||
|
withWeek:false,
|
||
|
timeNotation: '24h',
|
||
|
am_pm: false,
|
||
|
utc: false,
|
||
|
fontFamily: '',
|
||
|
fontSize: '',
|
||
|
foreground: '',
|
||
|
background: ''
|
||
|
};
|
||
|
})(jQuery);
|