Skip to content

Instantly share code, notes, and snippets.

@epok07
Last active August 21, 2024 17:22
Show Gist options
  • Save epok07/f446109e1cfe9b62d4d3da52e97312ee to your computer and use it in GitHub Desktop.
Save epok07/f446109e1cfe9b62d4d3da52e97312ee to your computer and use it in GitHub Desktop.
Carbon CheatSheet

Source

Get the first Monday of a month (and more)

This is a small cheat sheet for PHP's strtotime function, which can be used to convert textual sentences such as "next Friday" and "last Monday" into UNIX timestamps and formatted dates.

In the examples below, I've used the format "j, d-M-Y", which will give you something like: Monday, 17-Aug-2015. You can change this to your format of choice

Get next Monday.

Get next Monday (the result will be relative to today's date, of course):

//Get next Monday 
echo date("j, d-M-Y", strtotime("next monday")); 
//Result is: Monday, 17-Aug-2015

| ----- | | |

//Get next Monday

echo date("j, d-M-Y", strtotime("next monday"));

//Result is: Monday, 17-Aug-2015

|

Get the first day of a given month.

In this example, I am getting the first Wednesday in December, 2015:

//Get the first Wednesday of December, 2015 echo date("j, d-M-Y", strtotime("first wednesday 2015-12")); //Result is: Wednesday, 02-Dec-2015

| ----- | | |

//Get the first Wednesday of December, 2015

echo date("j, d-M-Y", strtotime("first wednesday 2015-12"));

//Result is: Wednesday, 02-Dec-2015

|

As you can see, the strtotime function is more than capable of converting English sentences into dates and times.

Get next Friday.

If we want to get the date of next Friday:

//Get next Friday echo date("j, d-M-Y", strtotime("last friday")); //Result is: Friday, 07-Aug-2015

| ----- | | |

//Get next Friday

echo date("j, d-M-Y", strtotime("last friday"));

//Result is: Friday, 07-Aug-2015

|

Get the first day of next month.

Here, we get the first day of next month (relative to today's date):

//Get the first day of next month echo date("j, d-M-Y", strtotime("first day of next month")); //Result is: Tuesday, 01-Sep-2015

| ----- | | |

//Get the first day of next month

echo date("j, d-M-Y", strtotime("first day of next month"));

//Result is: Tuesday, 01-Sep-2015

|

Get next Thursday.

//Get next Thursday echo date("j, d-M-Y", strtotime("next thursday")); //Result is: Thursday, 13-Aug-2015

| ----- | | |

//Get next Thursday

echo date("j, d-M-Y", strtotime("next thursday"));

//Result is: Thursday, 13-Aug-2015

|

Get the first Monday in January.

If we need to get the first Monday in January:

//Get the first Monday in January echo date("j, d-M-Y", strtotime("first monday 2015-01")); //Result is: Monday, 05-Jan-2015

| ----- | | |

//Get the first Monday in January

echo date("j, d-M-Y", strtotime("first monday 2015-01"));

//Result is: Monday, 05-Jan-2015

|

Obviously, you will need to change 2015 to match the year that is relevant to your requirements. For example, if we want the first Monday in January 2016:

//Get the first Monday in January, 2016 echo date("j, d-M-Y", strtotime("first monday 2016-01")); //Result is: Monday, 04-Jan-2016

| ----- | | |

//Get the first Monday in January, 2016

echo date("j, d-M-Y", strtotime("first monday 2016-01"));

//Result is: Monday, 04-Jan-2016

|

First Monday of next month.

Obviously, this is relative to today's date:

//Get the first Monday of next month echo date("j, d-M-Y", strtotime("first monday of next month")); //Result is: Monday, 07-Sep-2015

| ----- | | |

//Get the first Monday of next month

echo date("j, d-M-Y", strtotime("first monday of next month"));

//Result is: Monday, 07-Sep-2015

|

Get the last day of this month.

Need to get the last date of this month? You could even use this to figure out what day of the week it falls on, or how many days are in this month:

//Get the last day of this / current month echo date("j, d-M-Y", strtotime("last day of this month")); //Result is: Monday, 31-Aug-2015

| ----- | | |

//Get the last day of this / current month

echo date("j, d-M-Y", strtotime("last day of this month"));

//Result is: Monday, 31-Aug-2015

|

Get the last date of last month.

Want to know when last month ended?

//Get the last day of last month echo date("j, d-M-Y", strtotime("last day of last month")); //Result is: Friday, 31-Jul-2015

| ----- | | |

//Get the last day of last month

echo date("j, d-M-Y", strtotime("last day of last month"));

//Result is: Friday, 31-Jul-2015

|

Get the second Friday of last month.

Want to know when the second Friday of last month fell on?

//Get the second Friday of last month echo date("j, d-M-Y", strtotime("second friday of last month")); //Result is: Friday, 10-Jul-2015

| ----- | | |

//Get the second Friday of last month

echo date("j, d-M-Y", strtotime("second friday of last month"));

//Result is: Friday, 10-Jul-2015

|

As you can see, PHP's strtotime function is pretty flexible when it comes to taking in text.

Get the last Friday of this month.

The last Friday of a given month can be pretty important to businesses:

//Get the last Friday of this month echo date("j, d-M-Y", strtotime("last friday of this month")); //Result is: Friday, 28-Aug-2015

| ----- | | |

//Get the last Friday of this month

echo date("j, d-M-Y", strtotime("last friday of this month"));

//Result is: Friday, 28-Aug-2015

|

Hopefully, you found this cheat sheet to be useful! Be sure to test strtotime out by supplying it with different sentences and whatnot! You can start off by changing words such as "last" to "first" and "second last", etc.

Comments

comments

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment