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;
1788945495
2 · baseTimestamp
<? $datetime = "now"; $baseTimestamp = time(); $return = strtotime($datetime, $baseTimestamp); echo $return;
1788945495
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";
}
1788945496: 2026-09-09 37 09:18:16: now 1788945495: 2026-09-09 37 09:18:15: -1 second 1788945436: 2026-09-09 37 09:17:16: -1 minute 1788941896: 2026-09-09 37 08:18:16: -1 hour 1788859096: 2026-09-08 37 09:18:16: -1 day 1788340696: 2026-09-02 36 09:18:16: -1 week 1786267096: 2026-08-09 32 09:18:16: -1 month 1757409496: 2025-09-09 37 09:18:16: -1 year 1754036235: 2025-08-01 31 08:17:15: -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";
}
1788945496: 2026-09-09 37 09:18:16: now 1788945497: 2026-09-09 37 09:18:17: 1 second 1788945556: 2026-09-09 37 09:19:16: 1 minute 1788949096: 2026-09-09 37 10:18:16: 1 hour 1789031896: 2026-09-10 37 09:18:16: 1 day 1789550296: 2026-09-16 38 09:18:16: 1 week 1791537496: 2026-10-09 41 09:18:16: 1 month 1820481496: 2027-09-09 36 09:18:16: 1 year 1823768357: 2027-10-17 41 10:19:17: 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";
}
1788945496: 2026-09-09 37 09:18:16: now 1788825600: 2026-09-08 37 00:00:00: yesterday 1788912000: 2026-09-09 37 00:00:00: today 1788912000: 2026-09-09 37 00:00:00: midnight 1788955200: 2026-09-09 37 12:00:00: noon 1788998400: 2026-09-10 37 00:00:00: tomorrow 1788954300: 2026-09-09 37 11:45:00: front of 12 1788956100: 2026-09-09 37 12:15:00: back of 12 1788859096: 2026-09-08 37 09:18:16: previous day 1789031896: 2026-09-10 37 09:18:16: next day 1788859096: 2026-09-08 37 09:18:16: 1 day ago 1789031896: 2026-09-10 37 09:18:16: -1 day ago 1788254296: 2026-09-01 36 09:18:16: first day of 1790759896: 2026-09-30 40 09:18:16: 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 10th of September 2026 at 09:18:16 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