idate

Format a local time/date part as integer

&reftitle.description; ``int``false```idate` `string` `format` ``int``null```timestamp`&null;

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.

&reftitle.parameters;

`format`

- ## 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

&date.timestamp.description;
&reftitle.returnvalues;

Returns an `int` on success, &return.falseforfailure;.

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.

&reftitle.errors; &date.timezone.errors.description;
&reftitle.changelog;

&Version; | &Description;
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.

&reftitle.examples;

### `idate` example

    <?php
    $timestamp = 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);
    ?>

&reftitle.seealso;

- `DateTimeInterface::format`
- `date`
- `getdate`
- `time`