1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
| function edConvertNb2(n) {
// ex. : 2 become 02, for a best format of dates.
if (n < 9) {
n = '0' + n;
}
return n;
}
function edConvertMonth(month) {
// edConvert 3 first letters of the month in english to a number
// delete problems of accentued caracters in french
switch (month.match(/^./)[0]) {
case 'f':
month = "feb";
break;
case 'a':
if (month.match(/^../) == "ao") {
month = "aug";
} else {
month = "avr";
}
break;
case 'd':
month = "dec";
break;
}
var mo = month;
var m = ["jan", "feb", "mar", "avr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"];
for (var i = 0; i < 12; i++) {
if (m[i] == month) {
var month = edConvertNb2(i + 1);
break;
};
};
if (month == mo) {
var m = ["janv", "fevr", "mars", "avri", "mai", "juin", "juil", "août", "sept", "octo", "nove", "déce"];
for (var i = 0; i < 12; i++) {
var test = eval("/^" + m[i] + "/");
if (mo.match(eval(test)) != null) {
var month = edConvertNb2(i + 1);
break;
};
};
}
return month;
}
function edConvertHms(time) {
// edConvert time format, from h:m:s to hh:mm:ss
if (typeof time == 'object') {
time = time[0]
};
var h = eval(time.match(/^[0-9]*/)[0]);
(h < 10) ? h = '0' + h : h = h;
var m = eval(time.replace(/^[0-9]*\:|\:[0-9]*$/g, ''));
(m < 10) ? m = '0' + m : m = m;
var s = eval(time.match(/[0-9]*$/)[0]);
(s < 10) ? s = '0' + s : s = s;
time = h + ':' + m + ':' + s;
return time;
}
function edConvertDate(date) {
// edConvert a date at a Date() format to ISO 8601 format.
if (date.match(/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}\:[0-9]{2}\:[0-9]{2}\+[0-9]{2}\:[0-9]{2}/)) {
return date;
} else {
date = date.toLowerCase();
if (date.match(/\(cet\)/)) {
date = date.replace(/^....| gmt\+0100 \(cet\)/g, '');
var year = date.match(/[0-9]{4}/);
var month = edConvertMonth(date.match(/^[a-z]+/));
var day = date.match(/[0-9]{2}/);
var hms = date.match(/[0-9]{2}\:[0-9]{2}\:[0-9]{2}/);
hms = edConvertHms(hms);
date = year + '-' + month + '-' + day + 'T' + hms + '+01:00';
} else if (date.match(/cet$/)) {
var d = date.replace(/^[a-z]{3}\. | cet$/g, '');
var year = d.match(/[0-9)]{4}/);
var month = edConvertMonth(edConvertNb2(d.split(" ")[1].replace(/\./, '')));
var day = d.match(/../);
var hms = edConvertHms(d.match(/.{8}$/));
date = year + '-' + month + '-' + day + 'T' + hms + '+01:00';
} else if (date.match(/[0-9]{4}-[0-9]*-[0-9]\.[0-9]*:[0-9]/)) {
var year = date.match(/^[0-9]{4}/);
date = date.replace(/^...../, '');
var month = edConvertNb2(date.match(/^[0-9]*/));
date = date.replace(/^[0-9]*-/, '');
var day = edConvertNb2(date.match(/^[0-9]*/)[0]);
date = edConvertHms(date.replace(/^[0-9]*\./, ''));
date = year + '-' + month + '-' + day + 'T' + date + '+01:00';
} else {
return "";
}
}
return (date);
}
// EXEMPLES
//print(edConvertDate('jeu. 08 janv. 2009 22:29:28 CET'));
//print(edConvertDate('2010-1-2.13:26')); |