If you want to bookmark the original post, feel free with the following link - https://www.codewall.co.uk/php-date-strtotime-cheat-sheet/
If you've been developing some projects that are data-rich like me, you will of seen yourself using the Date function and the Date function mixed with strtotime, Date & strtotime are very powerful tools, enabling you to set date criteria very swiftly, no matter the scenario. It's simply all about knowing how to do it, as there are a lot of commands you can give these functions that are extremely useful. For example, '-7 days'. This article will be an online cheat sheet, but at the end of the article, there will be a download link with the most popular 'cheats' that can be printed perfectly on an A4 piece of paper. You can download the PDF Here or at the end of this page.
- 
Date & Time Manipulation With strtotime - *   First day of the month
- Last day of the month
- Subtract days from date
- Add days to date
- Subtract months from date
- Add months to date
- Subtract years from date
- Add years to date
- Subtract hours from date
- Add hours to date
- Subtract minutes from date
- Add minutes to date
- Subtract seconds from date
- Add seconds to date
- Get yesterdays date
- Get tomorrows date
- Get next date
- Get previous date
- Next day name
- Last day name
- First day of month name
- Last day of month name
- Noon - Midnight Date
 
 
- *   First day of the month
Current Date & Time Formatting
Let's start with plain old Date formatting, there are hundreds of variations available, but you will probably only ever use a few! Please Note: All examples in this section work with the Current Date Time, meaning the real-time-stamp of your computer at the time of execution!
4 Digit Year (#4-digit-year)
  echo date('Y'); // 2019
2 Digit Year
    echo date('y'); // 19
Month Number
    echo date('m'); // 08
Day Number
    echo date('d'); // 26
Date With 2 Digit Year
    echo date('y-m-d'); // 19-08-26
Date With 4 Digit Year
    echo date('Y-m-d'); // 2019-08-26
12 Hour & 24 Hour Format Hours
Quick note: There are 2 ways to access the hour from the date() function, use the following parameters to yield an identical result -
-   date('g')- (12 Hour Format) ordate('G')- (24 Hour Format)
-   date('h')- (12 Hour Format) ordate('H')- (24 Hour Format)
    echo date('h'); // 11 (am) (12 Hour Format Style)
    echo date('H'); // 11 (am) (24 Hour Format Style)
    echo date('g'); // 11 (am) (12 Hour Format Style)
    echo date('G'); // 11 (am) (24 Hour Format Style)
Minutes
    echo date('i'); // outputs: 08 (Minutes 00-59)
Seconds
    echo date('s'); // outputs: 56 (Seconds 00-59)
Date Time Stamp
Now with all of these parameters in thought, we can produce a proper date-time stamp in the format of YYYY-MM-DD HH:MM:SS
    echo date('Y-m-d h:i:s'); // 2019-08-26 09:48:01
And if we want to do it the other way, swapping the place of the year so that the format is DD-MM-YYYY HH:MM:SS
    echo date('d-m-Y h:i:s'); // 2019-08-26 09:48:01
Custom Date & Time Formatting With strtotime
Using a custom date or date-time with the date function is very straight forward. All's you need to do is pass in the date with the strtotime function after the formatting parameters is set. See the example below, notice that the passed in date format is YYYY-MM-DD and that the actual output is DD-MM-YYYY because of the specified formatting. Example 1
    echo date('d-m-Y h:i:s', strtotime('2018-01-31 00:00:01')); // 31-01-2018 12:00:01
This exact methodology of using the date function will work with all the formatting displayed in the first section of this article, Example 2
    echo date('Y-m-d', strtotime('2019-08-26')); // outputs 2019-08-05
So, the date function will format the strtotime date passed into whichever format parameters are specified. So another example, to get the day of the month number from the date passed in goes like this - Example 3
    echo date('d', strtotime('2019-08-26')); // outputs 05
Date & Time Manipulation with strtotime
To be honest, strtotime is an absolute godsend, being able to give it a parameter in a language that you actually speak is awesome. Eg. 'First day of this month' or 'First day of this week' and so on. This can be utilized without a custom date, so basically, the date-time of your server, or a date-time of your specification. In this next section, I will demonstrate both use-cases.
First day of the month
    // Using server date-time
    echo date('Y-m-d h:i:s', strtotime('first day of this month')); // 2019-08-01 19:35:00
    //Using custom date-time 
    echo date('Y-m-d h:i:s', strtotime('first day of this month', strtotime('2019-12-31 19:00:00'))); // 2019-12-01 07:00:00
Last day of the month
    // Using server date-time
    echo date('Y-m-d h:i:s', strtotime('last day of this month')); // 2019-08-31 19:35:00
    //Using custom date-time 
    echo date('Y-m-d h:i:s', strtotime('last day of this month', strtotime('2019-12-31 19:00:00'))); // 2019-12-01 07:00:00
Subtract days from date
    // Using server date-time
    echo date('Y-m-d H:i:s', strtotime('-7 days')); // Outputs: 2019-08-19 11:43:59
    //Using custom date-time 
    echo date('Y-m-d H:i:s', strtotime('-7 days', strtotime('2019-08-13 14:00:00'))); // Outputs: 2019-08-06 14:00:00
Add days to date
    // Using server date-time
    echo date('Y-m-d H:i:s', strtotime('+7 days')); // Outputs: 2019-09-01 11:43:59
    //Using custom date-time 
    echo date('Y-m-d H:i:s', strtotime('+7 days', strtotime('2019-08-13 14:00:00'))); // Outputs: 2019-08-20 14:00:00
Subtract months from date
    // Using server date-time
    echo date('Y-m-d H:i:s', strtotime('-7 months')); // Outputs: 2019-01-26 11:56:06
    //Using custom date-time
    echo date('Y-m-d H:i:s', strtotime('-7 months', strtotime('2019-08-13 14:00:00'))); // Outputs: 2020-03-13 14:00:00
Add months to date
    // Using server date-time
    echo date('Y-m-d H:i:s', strtotime('+7 months')); // Outputs: 2020-03-26 11:56:45
    //Using custom date-time
    echo date('Y-m-d H:i:s', strtotime('+7 months', strtotime('2019-08-13 14:00:00'))); // Outputs: 2020-03-13 14:00:00
Subtract years from date
    // Using server date-time
    echo date('Y-m-d H:i:s', strtotime('-5 years')); // Outputs: 2014-08-26 11:57:16
    //Using custom date-time
    echo date('Y-m-d H:i:s', strtotime('-5 years', strtotime('2019-08-13 14:00:00'))); // Outputs: 2014-08-13 14:00:00
Add years to date
    // Using server date-time
    echo date('Y-m-d H:i:s', strtotime('+7 years')); // Outputs: 2024-03-26 11:48:16
    //Using custom date-time
    echo date('Y-m-d H:i:s', strtotime('+7 years', strtotime('2019-08-13 14:00:00'))); // Outputs: 2024-03-13 14:00:00
Subtract hours from date
    // Using server date-time
    echo date('Y-m-d H:i:s', strtotime('-12 hours')); // Outputs: 2019-08-25 23:21:23
    //Using custom date-time
    echo date('Y-m-d H:i:s', strtotime('-12 hours', strtotime('2019-08-13 14:00:00'))); // Outputs: 2019-08-13 02:00:00
Add hours to date
    // Using server date-time
    echo date('Y-m-d H:i:s', strtotime('+12 hours')); // Outputs: 2019-08-26 23:21:53
    //Using custom date-time
    echo date('Y-m-d H:i:s', strtotime('+12 hours', strtotime('2019-08-13 14:00:00'))); // Outputs: 2019-08-14 02:00:00
Subtract minutes from date
    // Using server date-time
    echo date('Y-m-d H:i:s', strtotime('-60 minutes')); // Outputs: 2019-08-26 10:48:23
    //Using custom date-time
    echo date('Y-m-d H:i:s', strtotime('-60 minutes', strtotime('2019-08-13 14:00:00'))); // Outputs: 2019-08-13 02:00:00
Add minutes to date
    // Using server date-time
    echo date('Y-m-d H:i:s', strtotime('+60 minutes')); // Outputs: 2019-08-26 12:30:33
    //Using custom date-time
    echo date('Y-m-d H:i:s', strtotime('+60 minutes', strtotime('2019-08-13 14:00:00'))); // Outputs: 2019-08-13 13:00:00
Subtract seconds from date
    // Using server date-time
    echo date('Y-m-d H:i:s', strtotime('-300 seconds')); // Outputs: 2019-08-26 11:40:33
    //Using custom date-time
    echo date('Y-m-d H:i:s', strtotime('-300 seconds', strtotime('2019-08-13 14:00:00'))); // Outputs: 2019-08-13 13:55:00
Add seconds to date
    // Using server date-time
    echo date('Y-m-d H:i:s', strtotime('+60 seconds')); // Outputs: 2019-08-26 11:50:58
    //Using custom date-time
    echo date('Y-m-d H:i:s', strtotime('+60 seconds', strtotime('2019-08-13 14:00:00'))); // Outputs: 2019-08-13 14:05:00
Get the yesterdays date
    // Using server date-time
    echo date('Y-m-d H:i:s', strtotime('yesterday')); // Outputs: 2019-08-25 00:00:00
    //Using custom date-time
    echo date('Y-m-d H:i:s', strtotime('yesterday', strtotime('2019-08-13 14:00:00'))); // Outputs: 2019-08-12 00:00:00
Get tomorrows date
    // Using server date-time
    echo date('Y-m-d H:i:s', strtotime('tomorrow')); // Outputs: 2019-08-27 00:00:00
    //Using custom date-time
    echo date('Y-m-d H:i:s', strtotime('tomorrow', strtotime('2019-08-13 14:00:00'))); // Outputs: 2019-08-14 00:00:00
Get next date
Note: the next parameter works along with day, month and year.
    // Using server date-time
    echo date('Y-m-d H:i:s', strtotime('next month')); // Outputs: 2019-09-26 20:40:43
    //Using custom date-time
    echo date('Y-m-d H:i:s', strtotime('next year', strtotime('2019-08-13 14:00:00'))); // Outputs: 2020-08-13 14:00:00
Get previous date
    // Using server date-time
    echo date('Y-m-d H:i:s', strtotime('previous month')); // Outputs: 2019-07-26 20:40:43
    //Using custom date-time
    echo date('Y-m-d H:i:s', strtotime('previous year', strtotime('2019-08-13 14:00:00'))); // Outputs: 2018-08-13 14:00:00
Next day name
Note: short month name or full month name can be used, eg. Sat or Saturday
    echo date('Y-m-d H:i:s', strtotime('next saturday')); // Outputs: 2019-08-31 00:00:00
Last day name
Note: short month name or full month name can be used, eg. Sat or Saturday
    echo date('Y-m-d H:i:s', strtotime('last saturday')); // Outputs: 2019-08-24 00:00:00
First day of month name
Note: short month name or full month name can be used, eg. Feb or February
    echo date('Y-m-d H:i:s', strtotime('first day of February')); // Outputs: 2019-02-01 00:00:00
Last day of month name
Note: short month name or full month name can be used, eg. Feb or February
    echo date('Y-m-d H:i:s', strtotime('last day of February')); // Outputs: 2019-02-28 00:00:00
Noon And Midnight Date
    echo date('Y-m-d H:i:s', strtotime('midnight')); // Outputs: 2019-08-26 00:00:00
    echo date('Y-m-d H:i:s', strtotime('noon')); // Outputs: 2019-08-26 00:00:00
PDF Download Feel free to download this compacted cheat-sheet pdf. You can download the PDF Here
If you want to bookmark the original post, feel free with the following link - https://www.codewall.co.uk/php-date-strtotime-cheat-sheet/
 

 
    
Top comments (0)