Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function parseTimePattern() {
- var el = $id('DESU_timePattern');
- if(!el) return;
- var val = el.value;
- var regex = '', first = '', patternValid = true;
- for(var i = 0; i < val.length && patternValid; i++) {
- switch(val[i]) {
- case '?':
- regex += '?';
- break;
- case 'c':
- if(first != '') { regex += ')'; first = ''; }
- regex += '.';
- break;
- case 's':
- case 'i':
- case 'h':
- case 'd':
- case 'n':
- case 'y':
- if(first != '' && first != val[i]) regex += ')(';
- else if(first == '') regex += '(';
- regex += '[0-9]'; first = val[i];
- break;
- case 'm':
- if(first != '' && first != 'm') regex += ')(';
- else if(first == 'm') { patternValid = false; break; }
- regex += '([a-zA-Zа-яА-Я]+)'; first = 'm';
- break;
- default:
- patternValid = false;
- break;
- }
- }
- if(patternValid) {
- val = val.replace(/\?|c/g, '');
- saveCfg('dMyTimePattern', val.replace(/([sihdnym])+/g, '$1'));
- saveCfg('dTimeRegex', regex);
- }
- }
- function fixTime(label, i) {
- var a, month, year, day, hour, minute, second, begin, end;
- a = label.innerHTML.match(new RegExp('^((?:.|\n|\r)*?)' + Cfg.dTimeRegex + '((?:.|\n|\r)*)?$')
- if(a && a.length == Cfg['dTimePattern_'].length + 2) {
- begin = a[1] ? a[1] : '';
- end = a[Cfg.dMyTimePattern.length] ? a[Cfg.dMyTimePattern.length] : '';
- for(var i = 0; i < Cfg.dMyTimePattern.length; i++) {
- switch(Cfg.dMyTimePattern[i]) {
- case 's': second = a[i + 1]; break;
- case 'i': minute = a[i + 1]; break;
- case 'h': hour = a[i + 1]; break;
- case 'd': day = a[i + 1]; break;
- case 'n': month = a[i + 1]; break;
- case 'y': year = a[i + 1]; break;
- case 'm':
- a[i + 1] = a[i + 1].toLowerCase();
- if(a[i + 1].indexOf("янв") > -1 || a[i + 1].indexOf("jan") > -1) month = 0;
- else if(a[i + 1].indexOf("фев") > -1 || a[i + 1].indexOf("feb") > -1) month = 1;
- else if(a[i + 1].indexOf("мар") > -1 || a[i + 1].indexOf("mar") > -1) month = 2;
- else if(a[i + 1].indexOf("апр") > -1 || a[i + 1].indexOf("apr") > -1) month = 3;
- else if(a[i + 1].indexOf("май") > -1 || a[i + 1].indexOf("may") > -1) month = 4;
- else if(a[i + 1].indexOf("июн") > -1 || a[i + 1].indexOf("jun") > -1) month = 5;
- else if(a[i + 1].indexOf("июл") > -1 || a[i + 1].indexOf("jul") > -1) month = 6;
- else if(a[i + 1].indexOf("авг") > -1 || a[i + 1].indexOf("aug") > -1) month = 7;
- else if(a[i + 1].indexOf("сен") > -1 || a[i + 1].indexOf("sep") > -1) month = 8;
- else if(a[i + 1].indexOf("окт") > -1 || a[i + 1].indexOf("oct") > -1) month = 9;
- else if(a[i + 1].indexOf("ноя") > -1 || a[i + 1].indexOf("nov") > -1) month = 10;
- else if(a[i + 1].indexOf("дек") > -1 || a[i + 1].indexOf("dec") > -1) month = 11;
- }
- }
- var dtime = new Date(year, month, day, hour, minute, second);
- dtime.setHours(dtime.getHours() + parseInt(Cfg.timeOffset));
- label.innerHTML = begin + dtime.toString() + end;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement