223 行
		
	
	
	
		
			7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			223 行
		
	
	
	
		
			7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								* jQuery jclock - Clock plugin - v 2.3.2
							 | 
						||
| 
								 | 
							
								* http://plugins.jquery.com/project/jclock
							 | 
						||
| 
								 | 
							
								*
							 | 
						||
| 
								 | 
							
								* Copyright (c) 2007-2011 Doug Sparling <http://www.dougsparling.com>
							 | 
						||
| 
								 | 
							
								* Licensed under the MIT License:
							 | 
						||
| 
								 | 
							
								* http://www.opensource.org/licenses/mit-license.php
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								(function($) {
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								  $.fn.jclock = function(options) {
							 | 
						||
| 
								 | 
							
								    var version = '2.3.2';
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								    // options
							 | 
						||
| 
								 | 
							
								    var opts = $.extend({}, $.fn.jclock.defaults, options);
							 | 
						||
| 
								 | 
							
								         
							 | 
						||
| 
								 | 
							
								    return this.each(function() {
							 | 
						||
| 
								 | 
							
								      $this = $(this);
							 | 
						||
| 
								 | 
							
								      $this.timerID = null;
							 | 
						||
| 
								 | 
							
								      $this.running = false;
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								      // Record keeping for seeded clock
							 | 
						||
| 
								 | 
							
								      $this.increment = 0;
							 | 
						||
| 
								 | 
							
								      $this.lastCalled = new Date().getTime();
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								      var o = $.meta ? $.extend({}, opts, $this.data()) : opts;
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								      $this.format = o.format;
							 | 
						||
| 
								 | 
							
								      $this.utc = o.utc;
							 | 
						||
| 
								 | 
							
								      // deprecate utc_offset (v 2.2.0)
							 | 
						||
| 
								 | 
							
								      $this.utcOffset = (o.utc_offset != null) ? o.utc_offset : o.utcOffset;
							 | 
						||
| 
								 | 
							
								      $this.seedTime = o.seedTime;
							 | 
						||
| 
								 | 
							
								      $this.timeout = o.timeout;
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								      $this.css({
							 | 
						||
| 
								 | 
							
								        fontFamily: o.fontFamily,
							 | 
						||
| 
								 | 
							
								        fontSize: o.fontSize,
							 | 
						||
| 
								 | 
							
								        backgroundColor: o.background,
							 | 
						||
| 
								 | 
							
								        color: o.foreground
							 | 
						||
| 
								 | 
							
								      });
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								      // %a
							 | 
						||
| 
								 | 
							
								      $this.daysAbbrvNames = new Array(7);
							 | 
						||
| 
								 | 
							
								      $this.daysAbbrvNames[0] = "Sun";
							 | 
						||
| 
								 | 
							
								      $this.daysAbbrvNames[1] = "Mon";
							 | 
						||
| 
								 | 
							
								      $this.daysAbbrvNames[2] = "Tue";
							 | 
						||
| 
								 | 
							
								      $this.daysAbbrvNames[3] = "Wed";
							 | 
						||
| 
								 | 
							
								      $this.daysAbbrvNames[4] = "Thu";
							 | 
						||
| 
								 | 
							
								      $this.daysAbbrvNames[5] = "Fri";
							 | 
						||
| 
								 | 
							
								      $this.daysAbbrvNames[6] = "Sat";
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								      // %A
							 | 
						||
| 
								 | 
							
								      $this.daysFullNames = new Array(7);
							 | 
						||
| 
								 | 
							
								      $this.daysFullNames[0] = "Sunday";
							 | 
						||
| 
								 | 
							
								      $this.daysFullNames[1] = "Monday";
							 | 
						||
| 
								 | 
							
								      $this.daysFullNames[2] = "Tuesday";
							 | 
						||
| 
								 | 
							
								      $this.daysFullNames[3] = "Wednesday";
							 | 
						||
| 
								 | 
							
								      $this.daysFullNames[4] = "Thursday";
							 | 
						||
| 
								 | 
							
								      $this.daysFullNames[5] = "Friday";
							 | 
						||
| 
								 | 
							
								      $this.daysFullNames[6] = "Saturday";
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								      // %b
							 | 
						||
| 
								 | 
							
								      $this.monthsAbbrvNames = new Array(12);
							 | 
						||
| 
								 | 
							
								      $this.monthsAbbrvNames[0] = "Jan";
							 | 
						||
| 
								 | 
							
								      $this.monthsAbbrvNames[1] = "Feb";
							 | 
						||
| 
								 | 
							
								      $this.monthsAbbrvNames[2] = "Mar";
							 | 
						||
| 
								 | 
							
								      $this.monthsAbbrvNames[3] = "Apr";
							 | 
						||
| 
								 | 
							
								      $this.monthsAbbrvNames[4] = "May";
							 | 
						||
| 
								 | 
							
								      $this.monthsAbbrvNames[5] = "Jun";
							 | 
						||
| 
								 | 
							
								      $this.monthsAbbrvNames[6] = "Jul";
							 | 
						||
| 
								 | 
							
								      $this.monthsAbbrvNames[7] = "Aug";
							 | 
						||
| 
								 | 
							
								      $this.monthsAbbrvNames[8] = "Sep";
							 | 
						||
| 
								 | 
							
								      $this.monthsAbbrvNames[9] = "Oct";
							 | 
						||
| 
								 | 
							
								      $this.monthsAbbrvNames[10] = "Nov";
							 | 
						||
| 
								 | 
							
								      $this.monthsAbbrvNames[11] = "Dec";
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								      // %B
							 | 
						||
| 
								 | 
							
								      $this.monthsFullNames = new Array(12);
							 | 
						||
| 
								 | 
							
								      $this.monthsFullNames[0] = "January";
							 | 
						||
| 
								 | 
							
								      $this.monthsFullNames[1] = "February";
							 | 
						||
| 
								 | 
							
								      $this.monthsFullNames[2] = "March";
							 | 
						||
| 
								 | 
							
								      $this.monthsFullNames[3] = "April";
							 | 
						||
| 
								 | 
							
								      $this.monthsFullNames[4] = "May";
							 | 
						||
| 
								 | 
							
								      $this.monthsFullNames[5] = "June";
							 | 
						||
| 
								 | 
							
								      $this.monthsFullNames[6] = "July";
							 | 
						||
| 
								 | 
							
								      $this.monthsFullNames[7] = "August";
							 | 
						||
| 
								 | 
							
								      $this.monthsFullNames[8] = "September";
							 | 
						||
| 
								 | 
							
								      $this.monthsFullNames[9] = "October";
							 | 
						||
| 
								 | 
							
								      $this.monthsFullNames[10] = "November";
							 | 
						||
| 
								 | 
							
								      $this.monthsFullNames[11] = "December";
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								      $.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.currentTime(el);
							 | 
						||
| 
								 | 
							
								    var formatted_time = $.fn.jclock.formatTime(time, el);
							 | 
						||
| 
								 | 
							
								    el.attr('currentTime', time.getTime())
							 | 
						||
| 
								 | 
							
								    el.val(formatted_time);
							 | 
						||
| 
								 | 
							
								    el.timerID = setTimeout(function(){$.fn.jclock.displayTime(el)},el.timeout);
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  $.fn.jclock.currentTime = function(el) {
							 | 
						||
| 
								 | 
							
								    if(typeof(el.seedTime) == 'undefined') {
							 | 
						||
| 
								 | 
							
								      // Seed time not being used, use current time
							 | 
						||
| 
								 | 
							
								      var now = new Date();
							 | 
						||
| 
								 | 
							
								    } else {
							 | 
						||
| 
								 | 
							
								      // Otherwise, use seed time with increment
							 | 
						||
| 
								 | 
							
								      el.increment += new Date().getTime() - el.lastCalled;
							 | 
						||
| 
								 | 
							
								      var now = new Date(el.seedTime + el.increment);
							 | 
						||
| 
								 | 
							
								      el.lastCalled = new Date().getTime();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								    if(el.utc == true) {
							 | 
						||
| 
								 | 
							
								      var localTime = now.getTime();
							 | 
						||
| 
								 | 
							
								      var localOffset = now.getTimezoneOffset() * 60000;
							 | 
						||
| 
								 | 
							
								      var utc = localTime + localOffset;
							 | 
						||
| 
								 | 
							
								      var utcTime = utc + (3600000 * el.utcOffset);
							 | 
						||
| 
								 | 
							
								      var now = new Date(utcTime);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    return now
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								  $.fn.jclock.formatTime = function(time, el) {
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								    var timeNow = "";
							 | 
						||
| 
								 | 
							
								    var i = 0;
							 | 
						||
| 
								 | 
							
								    var index = 0;
							 | 
						||
| 
								 | 
							
								    while ((index = el.format.indexOf("%", i)) != -1) {
							 | 
						||
| 
								 | 
							
								      timeNow += el.format.substring(i, index);
							 | 
						||
| 
								 | 
							
								      index++;
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								      // modifier flag
							 | 
						||
| 
								 | 
							
								      //switch (el.format.charAt(index++)) {
							 | 
						||
| 
								 | 
							
								      //}
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      var property = $.fn.jclock.getProperty(time, el, el.format.charAt(index));
							 | 
						||
| 
								 | 
							
								      index++;
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      //switch (switchCase) {
							 | 
						||
| 
								 | 
							
								      //}
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								      timeNow += property;
							 | 
						||
| 
								 | 
							
								      i = index
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								    timeNow += el.format.substring(i);
							 | 
						||
| 
								 | 
							
								    return timeNow;
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								  $.fn.jclock.getProperty = function(dateObject, el, property) {
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								    switch (property) {
							 | 
						||
| 
								 | 
							
								      case "a": // abbrv day names
							 | 
						||
| 
								 | 
							
								          return (el.daysAbbrvNames[dateObject.getDay()]);
							 | 
						||
| 
								 | 
							
								      case "A": // full day names
							 | 
						||
| 
								 | 
							
								          return (el.daysFullNames[dateObject.getDay()]);
							 | 
						||
| 
								 | 
							
								      case "b": // abbrv month names
							 | 
						||
| 
								 | 
							
								          return (el.monthsAbbrvNames[dateObject.getMonth()]);
							 | 
						||
| 
								 | 
							
								      case "B": // full month names
							 | 
						||
| 
								 | 
							
								          return (el.monthsFullNames[dateObject.getMonth()]);
							 | 
						||
| 
								 | 
							
								      case "d": // day 01-31
							 | 
						||
| 
								 | 
							
								          return ((dateObject.getDate() < 10) ? "0" : "") + dateObject.getDate();
							 | 
						||
| 
								 | 
							
								      case "H": // hour as a decimal number using a 24-hour clock (range 00 to 23)
							 | 
						||
| 
								 | 
							
								          return ((dateObject.getHours() < 10) ? "0" : "") + dateObject.getHours();
							 | 
						||
| 
								 | 
							
								      case "I": // hour as a decimal number using a 12-hour clock (range 01 to 12)
							 | 
						||
| 
								 | 
							
								          var hours = (dateObject.getHours() % 12 || 12);
							 | 
						||
| 
								 | 
							
								          return ((hours < 10) ? "0" : "") + hours;
							 | 
						||
| 
								 | 
							
								      case "l": // hour as a decimal number using a 12-hour clock (range 1 to 12)
							 | 
						||
| 
								 | 
							
								          var hours = (dateObject.getHours() % 12 || 12);
							 | 
						||
| 
								 | 
							
								          //return ((hours < 10) ? "0" : "") + hours;
							 | 
						||
| 
								 | 
							
								          return hours;
							 | 
						||
| 
								 | 
							
								      case "m": // month number
							 | 
						||
| 
								 | 
							
								          return (((dateObject.getMonth() + 1) < 10) ? "0" : "") + (dateObject.getMonth() + 1);
							 | 
						||
| 
								 | 
							
								      case "M": // minute as a decimal number
							 | 
						||
| 
								 | 
							
								          return ((dateObject.getMinutes() < 10) ? "0" : "") + dateObject.getMinutes();
							 | 
						||
| 
								 | 
							
								      case "p": // either `am' or `pm' according to the given time value,
							 | 
						||
| 
								 | 
							
								          // or the corresponding strings for the current locale
							 | 
						||
| 
								 | 
							
								          return (dateObject.getHours() < 12 ? "am" : "pm");
							 | 
						||
| 
								 | 
							
								      case "P": // either `AM' or `PM' according to the given time value,
							 | 
						||
| 
								 | 
							
								          return (dateObject.getHours() < 12 ? "AM" : "PM");
							 | 
						||
| 
								 | 
							
								      case "S": // second as a decimal number
							 | 
						||
| 
								 | 
							
								          return ((dateObject.getSeconds() < 10) ? "0" : "") + dateObject.getSeconds();
							 | 
						||
| 
								 | 
							
								      case "y": // two-digit year
							 | 
						||
| 
								 | 
							
								          return dateObject.getFullYear().toString().substring(2);
							 | 
						||
| 
								 | 
							
								      case "Y": // full year
							 | 
						||
| 
								 | 
							
								          return (dateObject.getFullYear());
							 | 
						||
| 
								 | 
							
								      case "%":
							 | 
						||
| 
								 | 
							
								          return "%";
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								       
							 | 
						||
| 
								 | 
							
								  // plugin defaults (24-hour)
							 | 
						||
| 
								 | 
							
								  $.fn.jclock.defaults = {
							 | 
						||
| 
								 | 
							
								    format: '%H:%M:%S',
							 | 
						||
| 
								 | 
							
								    utcOffset: 0,
							 | 
						||
| 
								 | 
							
								    utc: false,
							 | 
						||
| 
								 | 
							
								    fontFamily: '',
							 | 
						||
| 
								 | 
							
								    fontSize: '',
							 | 
						||
| 
								 | 
							
								    foreground: '',
							 | 
						||
| 
								 | 
							
								    background: '',
							 | 
						||
| 
								 | 
							
								    seedTime: undefined,
							 | 
						||
| 
								 | 
							
								    timeout: 1000 // 1000 = one second, 60000 = one minute
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								})(jQuery);
							 |