$today = new DateTime;
echo $today->format('Y-m-d H:i:s'); // today's date and time
The above example will display today's date and time in Year-month-date Hour:minutes:second
format. Here is the output
2025-04-18 02:37:51
If you are getting warning message saying not to rely on system time zone , then add this line to the top.
date_default_timezone_set('America/Chicago');
$today = new DateTime;
echo $today->format('Y-m-d H:i:s');
Let us try differently
date_default_timezone_set('America/Chicago');
$date = new DateTime("now");
echo $date->format('d-m-y H:i:s');
echo "<br><br>";
$date = new DateTime("tomorrow");
echo $date->format('d-m-y H:i:s');
Out put is here 18-04-25 02:37:51
19-04-25 00:00:00
Another way ( object oriented style ) date_default_timezone_set('America/Chicago');
$date = new DateTime('2012-04-15 22:15:40');
echo $date->format('Y-m-d H:i:s') ;
Output is here 2012-04-15 22:15:40
Procedural style$date = date_create('2018-11-29 23:15:40');
echo date_format($date, 'Y/m/d H:i:s');
2018/11/29 23:15:40
$date = new DateTime('2019-01-01 16:55:58', new DateTimeZone('America/Chicago'));
echo $date->format('Y-m-d H:i:sP'); // Output is 2019-01-01 16:55:58-06:00
echo date(DateTime::ISO8601);
echo "<br>";
$dt_object = new DateTime('NOW');
echo $dt_object->format('c');
echo "<br>";
echo $dt_object->format(DateTime::ISO8601);
Output is here
2025-04-18T02:37:51-0500
2025-04-18T02:37:51-05:00
2025-04-18T02:37:51-0500
Code | Output |
---|---|
$d = new DateTime('now'); echo $d->format('Y-m-d') ; | 2025-04-18 |
$d = new DateTime('19 July 2018'); echo $d->format('Y-m-d') ; | 2018-07-19 |
$d = new DateTime('Tomorrow'); echo $d->format('Y-m-d') ; | 2025-04-19 |
$d = new DateTime('Yesterday'); echo $d->format('Y-m-d') ; | 2025-04-17 |
$d = new DateTime('+1 day'); echo $d->format('Y-m-d') ; | 2025-04-19 |
$d = new DateTime('+1 week'); echo $d->format('Y-m-d') ; | 2025-04-25 |
$d = new DateTime('+1 week 5 days'); echo $d->format('Y-m-d') ; | 2025-04-30 |
$d = new DateTime('+1 month'); echo $d->format('Y-m-d') ; | 2025-05-18 |
$d = new DateTime('+1 month 10 days'); echo $d->format('Y-m-d') ; | 2025-05-28 |
$d = new DateTime('+3 months -1 day'); echo $d->format('Y-m-d') ; | 2025-07-17 |
$d = new DateTime('+3 years'); echo $d->format('Y-m-d') ; | 2028-04-18 |
$d = new DateTime('+1 year 5 days'); echo $d->format('Y-m-d') ; | 2026-04-23 |
$d = new DateTime('Monday'); echo $d->format('Y-m-d') ; | 2025-04-21 |
$d = new DateTime('Monday +1 day '); echo $d->format('Y-m-d') ; | 2025-04-22 |
$d = new DateTime('first day of this month'); echo $d->format('Y-m-d') ; | 2025-04-01 |
$d = new DateTime('last day of this month'); echo $d->format('Y-m-d') ; | 2025-04-30 |
$d = new DateTime('first day of previous month'); echo $d->format('Y-m-d') ; | 2025-03-01 |
$d = new DateTime('last day of previous month'); echo $d->format('Y-m-d') ; | 2025-03-31 |
$d = new DateTime('first day of next month'); echo $d->format('Y-m-d') ; | 2025-05-01 |
$d = new DateTime('last day of next month'); echo $d->format('Y-m-d') ; | 2025-05-31 |
$d = new DateTime('last day of next month +1 hour'); echo $d->format('Y-m-d : H:i:s') ; | 2025-05-31 : 03:37:51 |
$d = new DateTime('Monday +1 hour +20 minutes +10 seconds'); echo $d->format('Y-m-d : H:i:s') ; | 2025-04-21 : 01:20:10 |
$d = DateTime::createFromFormat('d-m-Y', '11-06-2018'); $d = $d->modify('next monday'); echo $d->format('Y-m-d') ; | 2018-06-18 |
echo date('m-d-Y',strtotime('24-06-2018 next Monday ')); | 06-25-2018 |
hgggfhhfhf ghf | 26-08-2014 |
how to display this (Fri May 14 12:03:24 IST 2010) |
slon | 23-04-2015 |
Rather limited class. There is no easy way to get year, month, date etc. Stuid date difference returns a hole class istead of value in items I provide ('d', 'm', 'q' etc) as MSSQL & other conventional DateDiff functions do. |