Date & Time (1/2) |
Quelques fonctions en rapport avec le temps |
|
 |
La gestion des dates et des heures est souvent un problème épineux... Cette fiche a pour but de centraliser les principales fonctions, en ASP ou PHP, sur ce sujet ainsi que quelques exemples utiles ou demandés par les visiteurs du site... et en JavaScript, c'est ici ! |
Comment faire ?
Quelques fonctions de base
| Description | 
Doc officielle
| 
Doc officielle
|
|---|
| Date courante |
|
<? $timestamp=time(); ?> Nombre de secondes écoulées depuis le 01/01/1970 00:00:00 GMT
<? echo date($chaine [,$timestamp]); ?> $chaine est formée des éléments suivants :
a - "am" ou "pm"
A - "AM" ou "PM"
d - Jour du mois, sur deux chiffres (éventuellement avec un zéros) : "01" à "31"
D - Jour de la semaine, en trois lettres (et en anglais) : par exemple "Fri" (pour Vendredi)
F - Mois, textuel, version longue; en anglais, i.e. "January" (pour Janvier)
h - Heure, au format 12h, "01" à "12"
H - heure, au format 24h,. "00" à "23"
g - Heure, au format 12h sans les zéros initiaux, "1" à "12"
G - Heure, au format 24h sans les zéros initiaux,. "0" à "23"
i - Minutes; "00" à "59"
j - Jour du mois sans les zéros initiaux: "1" à "31"
l - Jour de la semaine, textuel, version longue; en anglais, i.e. "Friday" (pour Vendredi)
L - Booléen pour savoir si l'année est bissextile ("1") ou pas ("0")
m - Mois; i.e. "01" à "12"
n - Mois sans les zéros initiaux; i.e. "1" à "12"
M - Mois, en trois lettres (et en anglais) : par exemple "Jan" (pour Janvier)
s - Secondes; i.e. "00" à "59"
S - Suffixe ordinal d'un nombre, en anglais, sur deux lettres : i.e. "th", "nd"
t - Nombre de jour dans le mois donné, i.e. "28" à "31"
U - Secondes depuis une époque
w - Jour de la semaine, numérique, i.e. "0" (Dimanche) to "6" (Samedi)
Y - Année, 4 chiffres; i.e. "1999"
y - Année, 2 chiffres; i.e. "99"
z - Jour de l'année; i.e. "0" à "365"
Z - Décalage horaire en secondes (i.e. "-43200" à "43200")
si $timestamp n'est pas précisé, la valeur courante est utilisée
<? $array=getdate($timestamp); ?> Retourne un tableau associatif contenant les informations de date et heures du timestamp, avec les champs suivants :
"seconds" - secondes
"minutes" - minutes
"hours" - heures
"mday" - jour du mois
"wday" - jour de la semaine, numérique
"mon" - mois, numérique
"year" - année, numérique
"yday" - jour de l'année, numérique; i.e. "299"
"weekday" - jour de la semaine, texte complet (en anglais); i.e. "Friday"
"month" - mois, texte complet (en anglais); i.e. "January"
|
|
|---|
Date et heure courante |
|
|---|
| Heure courante |
|
|---|
| Jour |
|
|---|
| Mois |
|
|---|
| Année |
|
|---|
| Heure |
|
|---|
| Minutes |
|
|---|
| Secondes |
|
|---|
| Jour de la semaine |
<%=Weekday(date1[,DoW])%> DoW est un entier précisant le premier jour de la semaine à prendre en compte (1:Dimanche à 7:Samedi) |
|
|---|
Eléments d'une date |
<%=DatePart(periode,date1[,DoW[,WoY]]) %> Periode peut prendre les valeurs :
yyyy : année
q : trimestre
m : mois
y : jour de l'année
d : jour
w : jour de la semaine
ww : semaine
h : heure
n : minute
s : seconde
WoY est un entier spécifiant la première semaine de l'année.
1 : la semaine incluant le 1er janvier (defaut)
2 : la semaine comportant au moins quatre jours dans la nouvelle année
3 : la première semaine complète de la nouvelle année.
|
|
|---|
| Définir une date |
<%=dateSerial(year,month,day)%> Les paramètres peuvent prendre n'importe quelle valeur entre -32.768 et 32.767 et incrémentent ou décrémentent les autres à condition que l'ensemble reste valide (100-9999/1-12/1-31) Si Year est entre 0 et 99, il correspond alors aux années 1900-1999 |
|
<? $timestamp=mktime(h,n,s,m,d,y); ?> Si les valeurs sortent des plages, les autres sont incrémentées ou décrémentées
$timestamp est un entier long contenant le nombre de secondes depuis le début de l'époque UNIX (01/01/1970 à 00:00:00) |
|
|---|
| Définir une heure |
<%=timeSerial(hour,minute,second)%> Les paramètres peuvent prendre n'importe quelle valeur entre -32.768 et 32.767 et incrémentent ou décrémentent les autres à condition que l'ensemble reste valide (0-23/0-59/0-59) |
|
|---|
| Calculer l'écart entre 2 dates |
<%=dateDiff(periode,date1,date2)%> |
| En PHP, c'est le cirque pour les dates antérieures au 01/01/1970, alors ci-dessous une petite fonction pour calculer la différence (en jours) entre 2 dates... Si vous avez mieux pour faire la même chose, je suis preneur... NB: les fonctions DaysInMonth() et DaysInYear() sont sur la page 2 !
<? function daydiff($d1,$m1,$y1,$d2,$m2,$y2) {
$y = $y1; $m = $m1;
$j = DaysInMonth($m1,$y1) - $d1;
$m++; if($m==13) { $m=1; $y++; }
while($m!=$m2) {
if($m<$m2) {$j+=DaysInMonth($m,$y); $m++;}
else {$j-=DaysInMonth($m-1,$y); $m--;}
}
while($y!=$y2) {
if($y<$y2) {
if($m<3) $j+=DaysInYear($y);
else $j+=DaysInYear($y+1);
$y++;
} else {
if($m<3) $j-=DaysInYear($y-1);
else $j-=DaysInYear($y);
$y--;
}
}
return $j+$d2;
} ?> |
|
|---|
| Modifier une date |
<%=dateAdd(periode,nombre,date1)%> |
|
|---|
| Convertir une chaîne en date |
<% date1=dateValue(datestr) %> |
ou
<% date1=cDate(datestr) %> |
|
|---|
Didier le
10/09/2004 (432 234 hits) |
|
|