PHP 7.1.17 Released


(PHP 4, PHP 5, PHP 7)

getdateRestituisce informazioni sulla data/orario


array getdate ([ int $timestamp = time() ] )

Restituisce un array associativo che contiene informazioni sulla data del timestamp, o l'orario locale corrente se non viene passato il timestamp.

Elenco dei parametri


Il parametro opzionale timestamp è un integer timestamp Unix che ha come default l'ora locale attuale se un timestamp non è fornito. In altre parole, ha come default il valore di time().

Valori restituiti

Restituisce un array associativo delle informazioni relative al timestamp. Gli elementi dell'array associativo sono i seguenti:

Elementi chiave dell'array associativo restituito
Chiave Descrizione Esempio di valori restituiti
"seconds" Rappresentazione numerica dei secondi da 0 a 59
"minutes" Rappresentazione numerica dei minuti da 0 a 59
"hours" Rappresentazione numerica delle ore da 0 a 23
"mday" Rappresentazione numerica del giorno del mese da 1 a 31
"wday" Rappresentazione numerica del giorno della settimana da 0 (per Domenica) a 6 (per Sabato)
"mon" Rappresentazione numerica di un mese da 1 a 12
"year" Una rappresentazione numerica completa di un anno, 4 cifre Esempi: 1999 o 2003
"yday" Una rappresentazione del giorno dell'anno Da 0 a 365
"weekday" Una rappresentazione testuale completa del giorno della settimana Da Sunday a Saturday
"month" Una rappresentazione testuale completa di un mese, come Gennaio o Marzo Da January a December
0 Secondi dalla Unix Epoch, simile ai valori restituiti da time() e usati da date(). Dipendente dal sistema, tipicamente da -2147483648 a 2147483647.


Example #1 Esempio di getdate()


Il precedente esempio visualizzerà qualcosa simile a:

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

Vedere anche:

  • date() - Formatta una data o orario locale
  • idate() - Format a local time/date as integer
  • localtime() - Riceve l'orario locale
  • time() - Restituisce l'attuale UNIX timestamp
  • setlocale() - Imposta i parametri di localizzazione

add a note add a note

User Contributed Notes 5 notes

vimal866 at gmail dot com
2 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'];
Yura Pylypenko (plyrvt at mail dot ru)
14 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:
echo strtotime ("+1 day"), "\n";
strtotime ("+1 week"), "\n";
strtotime ("+1 week 2 days 4 hours 2 seconds"), "\n";
strtotime ("next Thursday"), "\n";
strtotime ("last Monday"), "\n";
andre at anlex dot co dot za
11 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.

$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];
"$d-$m-$y"; //getdate converted day


Allot less code makes everyone happy..
timforte at gmail dot com
10 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...

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

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

function gmgetdate2($ts = null){
$k = array('seconds','minutes','hours','mday',

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