PHP Manual
Prev |  | Next

# mktime

(PHP 3 <= 3.0.18, PHP 4 >= 4.0.0)

mktime -- Get UNIX timestamp for a date

## Description

``int mktime` (int hour, int minute, int second, int month, int day, int year [, int is_dst])`

Warning: Note the strange order of arguments, which differs from the order of arguments in a regular UNIX mktime() call and which does not lend itself well to leaving out parameters from right to left (see below). It is a common error to mix these values up in a script.

Returns the Unix timestamp corresponding to the arguments given. This timestamp is a long integer containing the number of seconds between the Unix Epoch (January 1 1970) and the time specified.

Arguments may be left out in order from right to left; any arguments thus omitted will be set to the current value according to the local date and time.

`Is_dst` can be set to 1 if the time is during daylight savings time, 0 if it is not, or -1 (the default) if it is unknown whether the time is within daylight savings time or not.

> Note: `Is_dst` was added in 3.0.10.

mktime() is useful for doing date arithmetic and validation, as it will automatically calculate the correct value for out-of-range input. For example, each of the following lines produces the string "Jan-01-1998".

Example 1. mktime() example
    echo date ("M-d-Y", mktime (0,0,0,12,32,1997));
    echo date ("M-d-Y", mktime (0,0,0,13,1,1997));
    echo date ("M-d-Y", mktime (0,0,0,1,1,1998));
    echo date ("M-d-Y", mktime (0,0,0,1,1,98));

`Year` may be a two or four digit value, with values between 0-69 mapping to 2000-2069 and 70-99 to 1970-1999 (on systems where time_t is a 32bit signed integer, as most common today, the valid range for `year` is somewhere between 1902 and 2037).

The last day of any given month can be expressed as the "0" day of the next month, not the -1 day. Both of the following examples will produce the string "The last day in Feb 2000 is: 29".

Example 2. Last day of next month
    $lastday = mktime (0,0,0,3,0,2000);
    echo strftime ("Last day in Feb 2000 is: %d", $lastday);

    $lastday = mktime (0,0,0,4,-31,2000);
    echo strftime ("Last day in Feb 2000 is: %d", $lastday);

Date with year, month and day equal to zero is considered illegal (otherwise it what be regarded as 30.11.1999, which would be strange behaviour).

See also date() and time().

Prev | Home | Next
microtime | Up | strftime