1 #HTTP_HEADER{'Content-Type: text/javascript'}
2 #CACHE{
7*
24*
3600,cache-client}
4 var cs_DateServeur = '[(#CHEMIN{outils/horloge_fonctions.php}|parametre_url{cs_dateserveur,oui})]';
7 // dateFormat v0.1 |
2004-
04-
03 15:
10 | JavaScript : Formattage de Dates
8 // http://www.asp-php.net/scripts/scripting/dateformat.php
10 // a : Ante meridiem et Post meridiem en minuscules - am ou pm
11 // A : Ante meridiem et Post meridiem en majuscules - AM ou PM
12 // B : Heure Internet Swatch -
000 a
999
13 // http://www.quirksmode.org/index.html?/js/beat.html
14 // d : Jour du mois, sur deux chiffres avec zero initial -
01 a
31
15 // D : Jour de la semaine, en
3 lettres, anglais par defaut - Mon a Sun
16 // F : Mois textuel, version longue, anglais par defaut - January a December
17 // g : Heure au format
12h, sans le zero initial -
1 a
12
18 // G : Heure au format
24h, sans le zero initial -
0 a
23
19 // h : Heure au format
12h, avec le zero initial -
01 a
12
20 // H : Heure au format
24h, avec le zero initial -
00 a
23
21 // i : Minutes avec le zero initial -
00 a
59
22 // j : Jour du mois sans le zero initial -
1 a
31
23 // l : Jour de la semaine, textuel, anglais par defaut - Sunday a Saturday
24 // L : L'annee est elle bissextile ? -
0 ou
1
25 // m : Mois avec le zero intial -
01 a
12
26 // M : Mois, en
3 lettres, anglais par defaut - Jan a Dec
27 // n : Mois sans le zero intial -
1 a
12
28 // O : Difference avec l'heure de Greenwich (GMT), en heures - -
1200 a +
1200
29 // r : Format de date RFC
822 Thu,
1 Apr
2004 12:
00:
00 - +
0200
30 // s : Secondes avec le zero initial -
00 a
59
31 // S : Suffixe ordinal d'un jour, anglais par defaut - st, nd, rd, th
32 // t : Nombre de jours dans le mois -
28 a
31
33 // U : Secondes depuis le
1er Janvier
1970,
0h00
00s GMT - Ex:
1081072800
34 // w : Jour de la semaine (
0 etant dimanche,
6 samedi) -
0 a
6
35 // W : Numero de la semaine dans l'annee -
1 a
52
36 // http://www.asp-php.net/tutorial/asp-php/glossaire.php?glossid=
28
37 // y : Annee sur
2 chiffres - Ex:
04
38 // Y : Annee sur
4 chiffres - Ex:
2004
39 // z : Jour de l'annee -
1 a
366
40 // Z : Decalage horaire en secondes - -
43200 a
43200
41 // \ : Caractere d'echappement - Ex: \a, \A, \m
43 String.prototype.padLeft = function(strChar, intLength){
45 while (str.length != intLength) str = strChar + str;
49 String.prototype.isInt = function() {
50 var oRegExp = new RegExp(/\d+/);
51 return oRegExp.test(this);
54 Array.prototype.exists = function(objValue) {
55 var boolReturn = false, i =
0;
56 for (i =
0; i < this.length; i++)
57 if (this[i] == objValue) { boolReturn = true; break; }
61 Date.prototype.dateFormat = function(strFormat, strLang, intTime) {
63 var arrayLang = ['#ENV{lang}']; // ['en', 'fr'];
64 var arrayFunctions = ['a','A','B','d','D','F','g','G','h','H','i','j','l','L','m','M','n','O','r','s','S','t','U','w','W','y','Y','z','Z'];
67 if (!intTime.toString().isInt()) intTime = null; else intTime *=
1000;
70 if (strLang.toString().isInt()) {
71 intTime = strLang *
1000;
72 strLang = '#ENV{lang}';//'en';
74 if (!arrayLang.exists(strLang)) strLang = '#ENV{lang}';//'en';
77 strLang = '#ENV{lang}';//'en';
80 var cs_lang = '#ENV{lang}';
81 var arrayMonths_#ENV{lang} = ['
<:date_mois_1|cs_javascript:
>', '
<:date_mois_2|cs_javascript:
>', '
<:date_mois_3|cs_javascript:
>', '
<:date_mois_4|cs_javascript:
>', '
<:date_mois_5|cs_javascript:
>', '
<:date_mois_6|cs_javascript:
>', '
<:date_mois_7|cs_javascript:
>', '
<:date_mois_8|cs_javascript:
>', '
<:date_mois_9|cs_javascript:
>', '
<:date_mois_10|cs_javascript:
>', '
<:date_mois_11|cs_javascript:
>', '
<:date_mois_12|cs_javascript:
>'];
82 var arrayDays_#ENV{lang} = ['
<:date_jour_1|cs_javascript:
>', '
<:date_jour_2|cs_javascript:
>', '
<:date_jour_3|cs_javascript:
>', '
<:date_jour_4|cs_javascript:
>', '
<:date_jour_5|cs_javascript:
>', '
<:date_jour_6|cs_javascript:
>', '
<:date_jour_7|cs_javascript:
>'];
83 var arraySuffix_#ENV{lang} = ['?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?'];
85 // var arrayDays_en = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
86 // var arrayMonths_en = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
87 var arraySuffix_en = ['st', 'nd', 'rd', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'st', 'nd', 'rd', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'st'];
89 // var arrayDays_fr = ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'];
90 // var arrayMonths_fr = ['Janvier', 'F\u00e9vrier', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Ao\u00fbt', 'Septembre', 'Octobre', 'Novembre', 'D\u00e9cembre'];
91 var arraySuffix_fr = ['er', 'nd', '\u00e8me', '\u00e8me', '\u00e8me', '\u00e8me', '\u00e8me', '\u00e8me', '\u00e8me', '\u00e8me', '\u00e8me', '\u00e8me', '\u00e8me', '\u00e8me', '\u00e8me', '\u00e8me', '\u00e8me', '\u00e8me', '\u00e8me', '\u00e8me', '\u00e8me', '\u00e8me', '\u00e8me', '\u00e8me', '\u00e8me', '\u00e8me', '\u00e8me', '\u00e8me', '\u00e8me', '\u00e8me', '\u00e8me'];
93 // a : Ante meridiem et Post meridiem en minuscules - am ou pm
94 fct_a = function() { return (self.getHours()
> 11)?'pm':'am'; }
95 // A : Ante meridiem et Post meridiem en majuscules - AM ou PM
96 fct_A = function() { return (self.getHours()
> 11)?'PM':'AM'; }
97 // B : Heure Internet Swatch -
000 a
999
98 // http://www.quirksmode.org/index.html?/js/beat.html
100 var intGMTOffset = (self.getTimezoneOffset() +
60) *
60;
101 var intSeconds = (self.getHours() *
3600) + (self.getMinutes() *
60) + self.getSeconds() + intGMTOffset;
102 var intBeat = Math.floor(intSeconds /
86.4);
103 if (intBeat
> 1000) intBeat -=
1000;
104 if (intBeat <
0) intBeat +=
1000;
105 return intBeat.toString().padLeft('
0',
3);
107 // d : Jour du mois, sur deux chiffres avec zero initial -
01 a
31
108 fct_d = function() { return self.getDate().toString().padLeft('
0',
2); }
109 // D : Jour de la semaine, en
3 lettres, anglais par defaut - Mon a Sun
110 fct_D = function() { return eval('arrayDays_' + strLang)[self.getDay()].substring(
0,
3); }
111 // F : Mois textuel, version longue, anglais par defaut - January a December
112 fct_F = function() { return eval('arrayMonths_' + strLang)[self.getMonth()]; }
113 // g : Heure au format
12h, sans le zero initial -
1 a
12
114 fct_g = function() { return (self.getHours()
> 12) ? self.getHours() -
12 : self.getHours(); }
115 // G : Heure au format
24h, sans le zero initial -
0 a
23
116 fct_G = function() { return self.getHours(); }
117 // h : Heure au format
12h, avec le zero initial -
01 a
12
119 return (self.getHours()
> 12) ? (self.getHours() -
12).toString().padLeft('
0',
2) : self.getHours().toString().padLeft('
0',
2);
121 // H : Heure au format
24h, avec le zero initial -
00 a
23
122 fct_H = function() { return self.getHours().toString().padLeft('
0',
2); }
123 // i : Minutes avec le zero initial -
00 a
59
124 fct_i = function() { return self.getMinutes().toString().padLeft('
0',
2); }
125 // j : Jour du mois sans le zero initial -
1 a
31
126 fct_j = function() { return self.getDate(); }
127 // l : Jour de la semaine, textuel, anglais par defaut - Sunday a Saturday
128 fct_l = function() { return eval('arrayDays_' + strLang)[self.getDay()]; }
129 // L : L'annee est elle bissextile ? -
0 ou
1
131 var intFullYear = fct_Y();
132 return ((intFullYear %
4 ==
0 && intFullYear %
100 !=
0) || (intFullYear %
4 ==
0 && intFullYear %
100 ==
0 && intFullYear %
400 ==
0)) ?
1 :
0;
134 // m : Mois avec le zero intial -
01 a
12
135 fct_m = function() { return (self.getMonth() +
1).toString().padLeft('
0',
2); }
136 // M : Mois, en
3 lettres, anglais par defaut - Jan a Dec
137 fct_M = function() { return eval('arrayMonths_' + strLang)[self.getMonth()].substring(
0,
3); }
138 // n : Mois sans le zero intial -
1 a
12
139 fct_n = function() { return (self.getMonth() +
1); }
140 // O : Difference avec l'heure de Greenwich (GMT), en heures - -
1200 a +
1200
142 var intTimezone = self.getTimezoneOffset();
143 var intTimezoneAbs = Math.abs(intTimezone);
144 var strTimezone = Math.floor(intTimezoneAbs /
60).toString().padLeft('
0',
2) + (intTimezoneAbs %
60).toString().padLeft('
0',
2);
145 return (intTimezone <
0) ? '+' + strTimezone : '-' + strTimezone ;
147 // r : Format de date RFC
822 Thu,
1 Apr
2004 12:
00:
00 - +
0200
149 return fct_D() + ', ' + fct_j() + ' ' + fct_M() + ' ' + fct_Y() + ' ' + fct_H() + ':' + fct_i() + ':' + fct_s() + ' ' + fct_O();
151 // s : Secondes avec le zero initial -
00 a
59
152 fct_s = function() { return (self.getSeconds()).toString().padLeft('
0',
2); }
153 // S : Suffixe ordinal d'un jour, anglais par defaut - st, nd, rd, th
154 fct_S = function() { return eval('arraySuffix_' + strLang)[self.getDate() -
1]; }
155 // t : Nombre de jours dans le mois -
28 a
31
158 if (self.getMonth() ==
1) {
159 intDays =
28 + fct_L();
161 switch (self.getMonth() %
2) {
162 case
0 : intDays =
31; break;
163 default : intDays =
30;
168 // U : Secondes depuis le
1er Janvier
1970,
0h00
00s GMT - Ex:
1081072800
169 fct_U = function() { return Math.round(self.getTime() /
1000); }
170 // w : Jour de la semaine (
0 etant dimanche,
6 samedi) -
0 a
6
171 fct_w = function() { return self.getDay(); }
172 // W : Numero de la semaine dans l'annee -
1 a
52
173 // http://www.asp-php.net/tutorial/asp-php/glossaire.php?glossid=
28
174 fct_W = function() { return Math.floor((fct_z() -
1 - self.getDay()) /
7) +
2; }
175 // y : Annee sur
2 chiffres - Ex:
04
177 var strFullYear = fct_Y().toString();
178 return strFullYear.substring(strFullYear.length -
2, strFullYear.length);
180 // Y : Annee sur
4 chiffres - Ex:
2004
181 fct_Y = function() { return self.getFullYear(); }
182 // z : Jour de l'annee -
1 a
366
184 var datePremierJanvier = new Date('January
1 ' + fct_Y().toString() + '
00:
00:
00');
185 var intDifference = self.getTime() - datePremierJanvier.getTime();
186 return Math.floor(intDifference /
1000 /
60 /
60 /
24);
188 // Z : Decalage horaire en secondes - -
43200 a
43200
190 var intTimezone = self.getTimezoneOffset();
191 var strTimezone = Math.abs(intTimezone) *
60;
192 return (intTimezone <
0) ? strTimezone : -strTimezone ;
197 var intMyTime = self.getTime();
198 self.setTime(intTime);
200 var arrayFormat = strFormat.split(''), i =
0;
201 for (i =
0; i < arrayFormat.length; i++) {
202 if (arrayFormat[i] == '\\') {
203 arrayFormat.splice(i,
1);
205 if (arrayFunctions.exists(arrayFormat[i])) {
206 arrayFormat[i] = eval('fct_' + arrayFormat[i] + '();');
210 if (intMyTime) self.setTime(intMyTime);
211 return arrayFormat.join('');
213 } // Date.prototype.dateFormat