getdate

(PHP 4, PHP 5, PHP 7, PHP 8)

getdateRetourne la date/heure

Description

getdate(?int $timestamp = null): array

Retourne un array associatif contenant les informations de date et d'heure du timestamp, ou la date/heure courante locale si timestamp est omis ou null.

Liste de paramètres

timestamp

Le paramètre optionnel timestamp est un timestamp Unix de type entier qui vaut par défaut l'heure courante locale si timestamp est omis ou null. En d'autres termes, il vaut par défaut la valeur de la fonction time().

Valeurs de retour

Retourne un tableau associatif contenant les informations de date et d'heure du timestamp timestamp. Les éléments du tableau associatif retourné sont les suivants :

Nom des clés du tableau associatif retourné
Clé Description Exemple de valeur retournée
"seconds" Représentation numérique des secondes 0 à 59
"minutes" Représentation numérique des minutes 0 à 59
"hours" Représentation numérique des heures 0 à 23
"mday" Représentation numérique du jour du mois courant 1 à 31
"wday" Représentation numérique du jour de la semaine courante 0 (pour Dimanche) à 6 (pour Samedi)
"mon" Représentation numérique du mois 1 à 12
"year" Année, sur 4 chiffres Exemples : 1999 ou 2003
"yday" Représentation numérique du jour de l'année 0 à 365
"weekday" Version texte du jour de la semaine Sunday à Saturday
"month" Version texte du mois, comme January ou March January à December
0 Nombre de secondes depuis l'époque Unix, similaire à la valeur retournée par la fonction time() et utilisée par date(). Dépend du système, typiquement de -2147483648 à 2147483647.

Historique

Version Description
8.0.0 timestamp est désormais nullable.

Exemples

Exemple #1 Exemple avec getdate()

<?php
$today
= getdate();
print_r($today);
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
     [seconds] => 40
     [minutes] => 58
     [hours]   => 21
     [mday]    => 17
     [wday]    => 2
     [mon]     => 6
     [year]    => 2003
     [yday]    => 167
     [weekday] => Tuesday
     [month]   => June
     [0]       => 1055901520
)

Voir aussi

  • date() - Formate un horodatage Unix
  • idate() - Formate une partie de l'heure/date locale en tant qu'entier
  • localtime() - Récupère l'heure locale
  • time() - Retourne l'horodatage UNIX actuel
  • setlocale() - Modifie les informations de localisation

add a note add a note

User Contributed Notes 6 notes

up
33
vimal866 at gmail dot com
9 years ago
Andre's code will throw an error. for the following line
   
     $d = $todayh[mday];
     $m = $todayh[mon];
     $y = $todayh[year];

"Notice : Undefined constant mday ,mon,year"

As is, it was looking for constants called mday, mon, year etc. When it doesn't find such a constant, PHP interprets it as a string.

like any other request it should be wrapped in quotes like this

     $d = $todayh['mday'];
     $m = $todayh['mon'];
     $y = $todayh['year'];
up
19
Yura Pylypenko (plyrvt at mail dot ru)
21 years ago
In addition to canby23 at ms19 post:
It's a very bad idea to consider day having 24 hours (86400 secs), because some days have 23, some - 25 hours due to daylight saving changes. Using of mkdate() and strtotime() is always preferred. strtotime() also has a very nice behaviour of datetime manipulations:
<?php
echo strtotime ("+1 day"), "\n";
echo
strtotime ("+1 week"), "\n";
echo
strtotime ("+1 week 2 days 4 hours 2 seconds"), "\n";
echo
strtotime ("next Thursday"), "\n";
echo
strtotime ("last Monday"), "\n";
?>
up
-13
andre at anlex dot co dot za
18 years ago
I thought best to show a posseble way to go about bypassing the end month issue where the first day in a new month will have the monday of the week that it falls in - in the old month. Use the numbering of days as the constant and work you way from there.

Example:
<?php
//-----------------------------
$now = time();
$num = date("w");
if (
$num == 0)
{
$sub = 6; }
else {
$sub = ($num-1); }
$WeekMon  = mktime(0, 0, 0, date("m", $now)  , date("d", $now)-$sub, date("Y", $now));    //monday week begin calculation
$todayh = getdate($WeekMon); //monday week begin reconvert

$d = $todayh[mday];
$m = $todayh[mon];
$y = $todayh[year];
echo
"$d-$m-$y"; //getdate converted day

?>

Allot less code makes everyone happy..
up
-8
info at ajawbk dot com
6 years ago
another gmgetdate that is a little faster/suscint (no loops).

<?php
function gmgetdate2($ts = null){
       
$k = array('seconds','minutes','hours','mday',
               
'wday','mon','year','yday','weekday','month',0);
        return(
array_combine($k,split(":",
               
gmdate('s:i:G:j:w:n:Y:z:l:F:U',is_null($ts)?time():$ts))));
        }
?>

https://ajawbk.com/
up
-74
timforte at gmail dot com
16 years ago
It's worth noting that this is local time, not UTC/GMT - gmgetdate doesn't exist :(.

The most logical way to handle date arithmetic without hitting DST problems is to work in UTC...

<?php
function add_days($my_date,$numdays) {
 
$date_t = strtotime($my_date.' UTC');
  return
gmdate('Y-m-d',$date_t + ($numdays*86400));
}
?>

[it's even faster if you use gmmktime instead of strtotime]
up
-82
eric dot schultz at NOSPAM dot CyVon dot com
16 years ago
Here is another gmgetdate that is a little faster/suscint (no loops).

<?php
function gmgetdate2($ts = null){
       
$k = array('seconds','minutes','hours','mday',
               
'wday','mon','year','yday','weekday','month',0);
        return(
array_combine($k,split(":",
               
gmdate('s:i:G:j:w:n:Y:z:l:F:U',is_null($ts)?time():$ts))));
        }
?>

It also returns the values in the same order as getdate.
To Top