(PHP 5, PHP 7, PHP 8)

idateFormat a local time/date part as integer


idate(string $format, ?int $timestamp = null): int|false

Returns a number formatted according to the given format string using the given integer timestamp or the current local time if no timestamp is given. In other words, timestamp is optional and defaults to the value of time().

Unlike the function date(), idate() accepts just one char in the format parameter.

Elenco dei parametri


The following characters are recognized in the format parameter string
format character Description
B Swatch Beat/Internet Time
d Day of the month
h Hour (12 hour format)
H Hour (24 hour format)
i Minutes
I (uppercase i) returns 1 if DST is activated, 0 otherwise
L (uppercase l) returns 1 for leap year, 0 otherwise
m Month number
N ISO-8601 day of the week (1 for Monday through 7 for Sunday)
o ISO-8601 year (4 digits)
s Seconds
t Days in current month
U Seconds since the Unix Epoch - January 1 1970 00:00:00 UTC - this is the same as time()
w Day of the week (0 on Sunday)
W ISO-8601 week number of year, weeks starting on Monday
y Year (1 or 2 digits - check note below)
Y Year (4 digits)
z Day of the year
Z Timezone offset in seconds


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

Returns an int on success, o false in caso di fallimento.

As idate() always returns an int and as they can't start with a "0", idate() may return fewer digits than you would expect. See the example below.


Ogni chiamata a una funzione data/ora genera un E_NOTICE se il time zone non è valido, e/o un messaggio E_STRICT o E_WARNING se si usano le impostazioni di sistema o la variabile d'ambiente TZ. Vedere anche date_default_timezone_set()

Log delle modifiche

Versione Descrizione
8.2.0 Adds the N (ISO-8601 day of the week) and o (ISO-8601 year) format characters.
8.0.0 timestamp is nullable now.


Example #1 idate() example

strtotime('1st January 2004'); //1072915200

// this prints the year in a two digit format
// however, as this would start with a "0", it
// only prints "4"
echo idate('y'$timestamp);

Vedere anche:

add a note add a note

User Contributed Notes 1 note

khaine at herbok dot org
11 years ago
A function that made by idate for print a hour you want:

function hour ( $a, $b )
$timestamp = strtotime(''.$a.':'.$b.':00');
$aa = idate('H', $timestamp);
$bb = idate('i', $timestamp);
$bb=="0") { $cc = "00"; } else { $cc = $bb; }
$dd = $aa.".".$cc;

Why should i use it?
For example:
You have to print 08:00 to 21:00 by 15 minutes periods.
This is a useful code for shipping sites for delivery time.

echo "<select name=\"example\">";
$iii = $ii * 15;
$hour = hour($i, $iii);
"<option value=\"".$hour."\">".$hour."</option>";
To Top