Section courante

A propos

Section administrative du site

LOCALTIME

Heure local
Perl
POSIX

Syntaxe

sub POSIX::localtime($expression);

Paramètres

Nom Description
expression Ce paramètre permet un nombre de secondes.

Retour

Nom Description
chaine de caractères Cette chaîne de caractères contient une date selon le format «JourSemaine Mois JourDuMois Heure:Minute:Seconde Année». Exemple: «Thu Sep 21 14:52:52 2000».
tableau associatif Le tableau associatif contient les champs suivants :
Index Description Intervalle
0 Ce champs contient les secondes. 0 à 59
1 Ce champs contient les minutes. 0 à 59
2 Ce champs contient les heures. 0 à 23
3 Ce champs contient le jour du mois 1 à 31
4 Ce champs contient le numéro du mois : 0 à 11
Numéro du mois Mois Nombre de jours Origine Latin Provençal Anglais Espagnol Allemand
0 Janvier 31 Janus Januaris Janvié January Enero Januar
1 Février 28 (29 pour un année bissextile) Purification Februarus Febrié February Febrero Februar
2 Mars 31 Mars Martius Mars March Marzo März
3 Avril 30 Aphrodite Aprilis Abriéu April Abril April
4 Mai 31 Maia Maius Mai May Mayo Mai
5 Juin 30 Junon Junius Jun June Junio Juni
6 Juillet 31 Jules César Julius Juliet July Julio Juli
7 Août 31 Auguste Augustus Avoust August Agosto August
8 Septembre 30 Septième September Sètembre September Septiembre September
9 Octobre 31 Huitième October Óutobre October Octubre Oktober
10 Novembre 30 Neuvième November Nouvèmbre November Noviembre November
11 Décembre 31 Dixième December Desèmbre December Deciembre Dezember
5 Ce champs contient l'année à addition à la valeur 1900 0 et plus
6 Ce champs contient le jour de la semaine : 0 à 7
Valeur Jour Origine Latin Provençal Anglais Espagnol Allemagne
0 Dimanche Soleil Dies dominicus Dimenche Sunday Domingo Sonntag
1 Lundi Lune Lunae Dilun Monday Lunes Montag
2 Mardi Mars Martis Dimars Tuesday Martes Dienstag
3 Mercredi Mercure Mercoris Dimèdre Wednesday Miércoles Mittwoch
4 Jeudi Jupiter Jovis Dijòu Thursday Jueves Donnerstag
5 Vendredi Vénus Veneris Divèndre Friday Viernes Freitag
6 Samedi Sabbat Sambati Dissate Saturday Sábado Samstag
7 Ce champs contient le jour de l'année 0 à 365
8 Ce champs indique s'il s'agit d'une date : 0, 1, undef
Valeur Description
undef Cette valeur indique qu'une erreur est survenu. Comme lors d'une valeur négatif par exemple.
0 Cette valeur indique que la date est invalide
1 Cette valeur indique que la date est valide

Description

Cette fonction convertie des secondes depuis le 1er janvier 1970 en date et heure.

Exemples

Voici un exemple montrant comment affiché l'heure courante en format ISO :

  1. #!/usr/bin/perl
  2.  
  3. use POSIX;
  4.  
  5. my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = POSIX::localtime(POSIX::time());
  6. print sprintf("%04d/%02d/%02d %02d:%02d:%02d",1900+$year,$mon+1,$mday,$hour,$min,$sec);

on obtiendra le résultat suivant si nous sommes le 8 janvier 2009 à 7h11 et 9 secondes du matin :

2009/01/08 07:11:09

L'exemple suivant permet de retourner le jour de la semaine à partir d'une date spécifié :

  1. #!/usr/bin/perl
  2.  
  3. use POSIX;
  4.  
  5. sub WeekName($) {
  6.      my ($day) = @_;
  7.      if($day == 1) {
  8.              return "Dimanche";
  9.         } elsif($day == 2) {
  10.              return "Lundi";
  11.         } elsif($day == 3) {
  12.              return "Mardi";
  13.         } elsif($day == 4) {
  14.              return "Mercredi";
  15.         } elsif($day == 5) {
  16.              return "Jeudi";
  17.         } elsif($day == 6) {
  18.              return "Vendredi";
  19.         } elsif($day == 7) {
  20.              return "Samedi";
  21.         }
  22.         return "";
  23. }
  24.  
  25. sub DateToWeek($$$) {
  26.     my ($Y,$M,$D) = @_;
  27.     my $mytime = POSIX::mktime(0,0,0,$D,$M-1,$Y-1900,-1,-1,-1);
  28.     my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = POSIX::localtime($mytime);
  29.     return ($wday + 1);
  30. }
  31.  
  32. print "Juillet 2011 :\n";
  33. for(my $I = 1; $I <= 5; $I++) {
  34.    print "2011/07/" . $I . "=" . WeekName(DateToWeek(2011,7,$I))."\n";
  35. }
  36.  
  37. print "Aout 2011 :\n";
  38. for(my $I = 21; $I <= 31; $I++) {
  39.    print "2011/08/" . $I . "=" . WeekName(DateToWeek(2011,8,$I))."\n";
  40. }
  41.  

on obtiendra le résultat suivant :

Juillet 2011 :
2011/07/1=Vendredi
2011/07/2=Samedi
2011/07/3=Dimanche
2011/07/4=Lundi
2011/07/5=Mardi
Aout 2011 :
2011/08/21=Dimanche
2011/08/22=Lundi
2011/08/23=Mardi
2011/08/24=Mercredi
2011/08/25=Jeudi
2011/08/26=Vendredi
2011/08/27=Samedi
2011/08/28=Dimanche
2011/08/29=Lundi
2011/08/30=Mardi
2011/08/31=Mercredi

Voir également

Langage de programmation - Perl - Référence de procédures et fonctions - localtime
Langage de programmation - PHP - Référence de procédures et fonctions - localtime
Langage de programmation - Fonction C pour Linux - localtime

Dernière mise à jour : Dimanche, le 18 octobre 2015