Format a local time/date part as integer

# idate

(PHP 5, PHP 7, PHP 8)

idate — Format a local time/date part as integer

### Description

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.

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

`timestamp`

  The optional `timestamp` parameter is an int Unix timestamp that defaults to the current local time if `timestamp` is omitted or `null`. In other words, it defaults to the value of time().

### Return Values

Returns an int on success, or `false` on failure.

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.

### Errors/Exceptions

Every call to a date/time function will generate a `E_WARNING` if the time zone is not valid. See also date_default_timezone_set()

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

### Examples

Example #1 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) . "\n";
$timestamp = strtotime('1st January 2024'); // 1704067200
echo idate('y', $timestamp);`

The above example will output:

    4
    24

### See Also

- DateTimeInterface::format() - Returns date formatted according to given format
- date() - Format a Unix timestamp
- getdate() - Get date/time information
- time() - Return current Unix timestamp

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open