PageSourceSearch

https://valeev77.ru/g/s3/lp/js/timer.js

js valeev77.ru collected 2026-10-07 22:30:55 UTC 3,255 bytes, 96 lines download raw bytes

1(function( $ ){
2
3  $.fn.timer = function( options ) {  
4
5    // Создаём настройки по-умолчанию, расширяя их с помощью параметров, которые были переданы
6	var now = new Date();
7    var settings = $.extend( {
8		utc : (-now.getTimezoneOffset())/60,
9		language : 'ru',		
10		format_in : '%d.%M.%y %h:%m:%s',
11		format_out : '%d %h %m %s',
12		end_message : "00:00:00",
13		wrapChar: false,
14		onEnd : function () {},
15		change : true,
16		update_time : 1000
17    }, options);
18	
19    return this.each(function() {        
20		var obj = $(this);
21			
22		var interval;
23		var lang = {
24				days : ['день','дня','дней'],
25				hours : ['час','часа','часов'],
26				minuts : ['минута','минуты','минут'],
27				seconds : ['секунда','секунды','секунд']
28		};
29		if (settings.language=='en') {
30			lang = {
31				days : ['day','days','days'],
32				hours : ['hour','hours','hours'],
33				minuts : ['minut','minuts','minuts'],
34				seconds : ['second','seconds','seconds']
35			};
36		}
37		var time_output = settings.end_message;
38		var inner = obj.text().replace(/[^0-9]/g," ").split(' ');
39		var inner_format = settings['format_in'].replace(/[^%dMyhms]/g," ").split(' ');
40		var inner_array = [];
41		for (var i = 0; i < inner_format.length; i++) {
42			inner_array[inner_format[i]] = inner[i];
43		}
44		if (!inner_array['%y']) {
45			if(now > new Date(now.getFullYear(), inner_array['%M']-1, inner_array['%d'], inner_array['%h'],inner_array['%m'],inner_array['%s'])){
46				inner_array['%y'] = now.getFullYear() + 1;
47			}
48		}
49		var date_to = new Date(inner_array['%y'], (inner_array['%M']-1>=0?inner_array['%M']-1:now.getMonth()), inner_array['%d']||now.getDate()+1, inner_array['%h']||0, inner_array['%m']||0, inner_array['%s']||0);
50		function modifier_spellcount(num) {
51			var num_null = num<10?'0':'';
52			if (settings.wrapChar) {
53				var num = (num_null + num).toString().split('');
54				var res = '';
55
56				for (i = 0; i < num.length; i++) {
57					res += '<' + settings.wrapChar + '>' + num[i] + '</' + settings.wrapChar + '>';
58				}
59
60				return res;
61			}
62			return num_null + num;
63		}
64		
65		function set_time() {
66			now = new Date();
67			var time_intervar = date_to - now - ((-now.getTimezoneOffset()*60000) - (settings.utc*3600*1000));
68			var days = Math.floor(time_intervar/3600/1000/24);
69			var hours = Math.floor(time_intervar/3600/1000) - Math.floor(time_intervar/3600/1000/24)*24;
70			var minuts = Math.floor(time_intervar/60/1000) - Math.floor(time_intervar/3600/1000)*60;
71			var seconds = Math.floor(time_intervar/1000) - Math.floor(time_intervar/60/1000)*60;
72			
73			if (time_intervar>0) {
74				
75				days = modifier_spellcount(days);
76				hours = modifier_spellcount(hours);
77				minuts = modifier_spellcount(minuts);
78				seconds = modifier_spellcount(seconds);
79
80				time_output = settings['format_out']
81					.replace('%d', days)
82					.replace('%h', hours)
83					.replace('%m', minuts)
84					.replace('%s', seconds);
85				obj.html(time_output);
86			}else{
87				obj.html(settings.end_message);
88				settings.onEnd.call(obj);
89				clearInterval(interval);
90			}
91		}
92		set_time();
93		if (settings.change) interval = window.setInterval(set_time,settings.update_time);
94    });
95  };
96})( jQuery );

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.