PHP Manual
Prev |  | Next

# mktime

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
      1
      2 echo date ("M-d-Y", mktime (0,0,0,12,32,1997));
      3 echo date ("M-d-Y", mktime (0,0,0,13,1,1997));
      4 echo date ("M-d-Y", mktime (0,0,0,1,1,1998));
      5 echo date ("M-d-Y", mktime (0,0,0,1,1,98));
      6

`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
      1
      2 $lastday = mktime (0,0,0,3,0,2000);
      3 echo strftime ("Last day in Feb 2000 is: %d", $lastday);
      4
      5 $lastday = mktime (0,0,0,4,-31,2000);
      6 echo strftime ("Last day in Feb 2000 is: %d", $lastday);
      7

See also date() and time().

Prev | Home | Next
microtime | Up | strftime