Bonjour,

Débutant en programmation, je suis parvenu à rédiger des fonctions dont j'ai besoin pour convertir des dates. Cependant, j'ai lu dans ce site que les objets sont souvent plus utiles, plus maniables et plus partageables. La question que je me pose est donc : comment (et pourquoi) transformer mes fonctions en objet ?
Voici mes quatre fonctions que j'ai commenté pour expliquer ce qu'elles font.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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'));
Merci de l'aide,
Thibaud.