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;
1783470640
2 · baseTimestamp
<? $datetime = "now"; $baseTimestamp = time(); $return = strtotime($datetime, $baseTimestamp); echo $return;
1783470640
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";
}
1783470640: 2026-07-08 28 00:30:40: now 1783470639: 2026-07-08 28 00:30:39: -1 second 1783470580: 2026-07-08 28 00:29:40: -1 minute 1783467040: 2026-07-07 28 23:30:40: -1 hour 1783384240: 2026-07-07 28 00:30:40: -1 day 1782865840: 2026-07-01 27 00:30:40: -1 week 1780878640: 2026-06-08 24 00:30:40: -1 month 1751934640: 2025-07-08 28 00:30:40: -1 year 1748647779: 2025-05-30 22 23:29:39: -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";
}
1783470640: 2026-07-08 28 00:30:40: now 1783470641: 2026-07-08 28 00:30:41: 1 second 1783470700: 2026-07-08 28 00:31:40: 1 minute 1783474240: 2026-07-08 28 01:30:40: 1 hour 1783557040: 2026-07-09 28 00:30:40: 1 day 1784075440: 2026-07-15 29 00:30:40: 1 week 1786149040: 2026-08-08 32 00:30:40: 1 month 1815006640: 2027-07-08 27 00:30:40: 1 year 1818379901: 2027-08-16 33 01:31:41: 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";
}
1783470640: 2026-07-08 28 00:30:40: now 1783382400: 2026-07-07 28 00:00:00: yesterday 1783468800: 2026-07-08 28 00:00:00: today 1783468800: 2026-07-08 28 00:00:00: midnight 1783512000: 2026-07-08 28 12:00:00: noon 1783555200: 2026-07-09 28 00:00:00: tomorrow 1783511100: 2026-07-08 28 11:45:00: front of 12 1783512900: 2026-07-08 28 12:15:00: back of 12 1783384240: 2026-07-07 28 00:30:40: previous day 1783557040: 2026-07-09 28 00:30:40: next day 1783384240: 2026-07-07 28 00:30:40: 1 day ago 1783557040: 2026-07-09 28 00:30:40: -1 day ago 1782865840: 2026-07-01 27 00:30:40: first day of 1785457840: 2026-07-31 31 00:30:40: 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 Thursday the 9th of July 2026 at 12:30:41 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