strtotime
Description
The strtotime of Date / Time for PHP parse about any English textual datetime description into a Unix timestamp.
Syntax
strtotime(
string $datetime,
?int $baseTimestamp = null
): int|falseParameters
time
A date/time string. Valid formats are explained in Date and Time Formats.
baseTimestamp
The timestamp which is used as a base for the calculation of relative dates.
Return
Returns a timestamp on success, false otherwise.
Examples
1 · datetime
<? $datetime = "now"; $return = strtotime($datetime); echo $return;
1789009076
2 · baseTimestamp
<? $datetime = "now"; $baseTimestamp = time(); $return = strtotime($datetime, $baseTimestamp); echo $return;
1789009076
3 · -
<?
$array =
[
"now",
"-1 second",
"-1 minute",
"-1 hour",
"-1 day",
"-1 week",
"-1 month",
"-1 year",
"-1 year -1 month -1 week -1 day -1 hour -1 minute -1 second"
];
foreach($array as $datetime)
{
$return = strtotime($datetime);
$format = "Y-m-d W H:i:s";
$date = date($format, $return);
echo "$return: $date: $datetime\n";
}
1789009076: 2026-09-10 37 02:57:56: now 1789009075: 2026-09-10 37 02:57:55: -1 second 1789009016: 2026-09-10 37 02:56:56: -1 minute 1789005476: 2026-09-10 37 01:57:56: -1 hour 1788922676: 2026-09-09 37 02:57:56: -1 day 1788404276: 2026-09-03 36 02:57:56: -1 week 1786330676: 2026-08-10 33 02:57:56: -1 month 1757473076: 2025-09-10 37 02:57:56: -1 year 1754099815: 2025-08-02 31 01:56:55: -1 year -1 month -1 week -1 day -1 hour -1 minute -1 second
4 · +
<?
$array =
[
"now",
"1 second",
"1 minute",
"1 hour",
"1 day",
"1 week",
"1 month",
"1 year",
"1 year 1 month 1 week 1 day 1 hour 1 minute 1 second"
];
foreach($array as $datetime)
{
$return = strtotime($datetime);
$format = "Y-m-d W H:i:s";
$date = date($format, $return);
echo "$return: $date: $datetime\n";
}
1789009076: 2026-09-10 37 02:57:56: now 1789009077: 2026-09-10 37 02:57:57: 1 second 1789009136: 2026-09-10 37 02:58:56: 1 minute 1789012676: 2026-09-10 37 03:57:56: 1 hour 1789095476: 2026-09-11 37 02:57:56: 1 day 1789613876: 2026-09-17 38 02:57:56: 1 week 1791601076: 2026-10-10 41 02:57:56: 1 month 1820545076: 2027-09-10 36 02:57:56: 1 year 1823831937: 2027-10-18 42 03:58:57: 1 year 1 month 1 week 1 day 1 hour 1 minute 1 second
5 · day-based
<?
$array =
[
"now",
"yesterday",
"today",
"midnight",
"noon",
"tomorrow",
"front of 12",
"back of 12",
"previous day",
"next day",
"1 day ago",
"-1 day ago",
"first day of",
"last day of"
];
foreach($array as $datetime)
{
$return = strtotime($datetime);
$format = "Y-m-d W H:i:s";
$date = date($format, $return);
echo "$return: $date: $datetime\n";
}
1789009076: 2026-09-10 37 02:57:56: now 1788912000: 2026-09-09 37 00:00:00: yesterday 1788998400: 2026-09-10 37 00:00:00: today 1788998400: 2026-09-10 37 00:00:00: midnight 1789041600: 2026-09-10 37 12:00:00: noon 1789084800: 2026-09-11 37 00:00:00: tomorrow 1789040700: 2026-09-10 37 11:45:00: front of 12 1789042500: 2026-09-10 37 12:15:00: back of 12 1788922676: 2026-09-09 37 02:57:56: previous day 1789095476: 2026-09-11 37 02:57:56: next day 1788922676: 2026-09-09 37 02:57:56: 1 day ago 1789095476: 2026-09-11 37 02:57:56: -1 day ago 1788231476: 2026-09-01 36 02:57:56: first day of 1790737076: 2026-09-30 40 02:57:56: last day of
6 · specific
<?
$array =
[
"01-02-03",
"3 february 2001"
];
foreach($array as $datetime)
{
$return = strtotime($datetime);
$format = "Y-m-d W H:i:s";
$date = date($format, $return);
echo "$return: $date: $datetime\n";
}
981158400: 2001-02-03 05 00:00:00: 01-02-03 981158400: 2001-02-03 05 00:00:00: 3 february 2001
7 · holidays
<?
$array =
[
"Mother's Day" => "second sunday of may",
"Memorial Day" => "last monday of may",
"Father's Day" => "third sunday of june",
"Thanksgiving Day" => "fourth thursday of november"
];
foreach($array as $key => $datetime)
{
$return = strtotime($datetime);
$format = "Y-m-d";
$date = date($format, $return);
echo "$date: $key\n";
}
2026-05-10: Mother's Day 2026-05-25: Memorial Day 2026-06-21: Father's Day 2026-11-26: Thanksgiving Day
8 · escape
<? $datetime = "next day"; $return = strtotime($datetime); $format = 'l \t\h\e jS \o\f F Y \a\t h:i:s A'; $date = date($format, $return); echo "\"$datetime\" is $date";
"next day" is Friday the 11th of September 2026 at 02:57:56 AM
Links
Date / Time
- checkdate
- date
- date_add
- date_create
- date_create_from_format
- date_create_immutable
- date_create_immutable_from_format
- date_date_set
- date_default_timezone_get
- date_default_timezone_set
- date_diff
- date_format
- date_get_last_errors
- date_interval_create_from_date_string
- date_interval_format
- date_isodate_set
- date_modify
- date_offset_get
- date_parse
- date_parse_from_format
- date_sub
- date_sun_info
- date_sunrise
- date_sunset
- date_time_set
- date_timestamp_get
- date_timestamp_set
- date_timezone_get
- date_timezone_set
- getdate
- gettimeofday
- gmdate
- gmmktime
- gmstrftime
- idate
- localtime
- microtime
- mktime
- strftime
- strptime
- time
- timezone_abbreviations_list
- timezone_identifiers_list
- timezone_location_get
- timezone_name_from_abbr
- timezone_name_get
- timezone_offset_get
- timezone_open
- timezone_transitions_get
- timezone_version_get