How do I get the current date and time in PHP?

PhpDatetime

Php Problem Overview


Which PHP function can return the current date/time?

Php Solutions


Solution 1 - Php

The time would go by your server time. An easy workaround for this is to manually set the timezone by using date_default_timezone_set before the date() or time() functions are called to.

I'm in Melbourne, Australia so I have something like this:

date_default_timezone_set('Australia/Melbourne');

Or another example is LA - US:

date_default_timezone_set('America/Los_Angeles');

You can also see what timezone the server is currently in via:

date_default_timezone_get();

So something like:

$timezone = date_default_timezone_get();
echo "The current server timezone is: " . $timezone;

So the short answer for your question would be:

// Change the line below to your timezone!
date_default_timezone_set('Australia/Melbourne');
$date = date('m/d/Y h:i:s a', time());

Then all the times would be to the timezone you just set :)

Solution 2 - Php

// Simply:
$date = date('Y-m-d H:i:s');

// Or:
$date = date('Y/m/d H:i:s');

// This would return the date in the following formats respectively:
$date = '2012-03-06 17:33:07';
// Or
$date = '2012/03/06 17:33:07';

/** 
 * This time is based on the default server time zone.
 * If you want the date in a different time zone,
 * say if you come from Nairobi, Kenya like I do, you can set
 * the time zone to Nairobi as shown below.
 */

date_default_timezone_set('Africa/Nairobi');

// Then call the date functions
$date = date('Y-m-d H:i:s');
// Or
$date = date('Y/m/d H:i:s');

// date_default_timezone_set() function is however
// supported by PHP version 5.1.0 or above.

For a time-zone reference, see List of Supported Timezones.

Solution 3 - Php

Since PHP 5.2.0 you can use the DateTime() class:

use \Datetime;

$now = new DateTime();
echo $now->format('Y-m-d H:i:s');    // MySQL datetime format
echo $now->getTimestamp();           // Unix Timestamp -- Since PHP 5.3

And to specify the timezone:

$now = new DateTime(null, new DateTimeZone('America/New_York'));
$now->setTimezone(new DateTimeZone('Europe/London'));    // Another way
echo $now->getTimezone();

Solution 4 - Php

Reference: Here's a link

This can be more reliable than simply adding or subtracting the number of seconds in a day or a month to a timestamp because of daylight saving time.

The PHP code

// Assuming today is March 10th, 2001, 5:16:18 pm, and that we are in the
// Mountain Standard Time (MST) Time Zone

$today = date("F j, Y, g:i a");                 // March 10, 2001, 5:16 pm
$today = date("m.d.y");                         // 03.10.01
$today = date("j, n, Y");                       // 10, 3, 2001
$today = date("Ymd");                           // 20010310
$today = date('h-i-s, j-m-y, it is w Day');     // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.');   // it is the 10th day.
$today = date("D M j G:i:s T Y");               // Sat Mar 10 17:16:18 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h');     // 17:03:18 m is month
$today = date("H:i:s");                         // 17:16:18
$today = date("Y-m-d H:i:s");                   // 2001-03-10 17:16:18 (the MySQL DATETIME format)

Solution 5 - Php

PHP's time() returns a current Unix timestamp. With this, you can use the date() function to format it to your needs.

$date = date('Format String', time());

As Paolo mentioned in the comments, the second argument is redundant. The following snippet is equivalent to the one above:

$date = date('Format String');

Solution 6 - Php

You can either use the $_SERVER['REQUEST_TIME'] variable (available since PHP 5.1.0) or the time() function to get the current Unix timestamp.

Solution 7 - Php

You can use both the $_SERVER['REQUEST_TIME'] variable or the time() function. Both of these return a Unix timestamp.

Most of the time these two solutions will yield the exact same Unix Timestamp. The difference between these is that $_SERVER['REQUEST_TIME'] returns the time stamp of the most recent server request and time() returns the current time. This may create minor differences in accuracy depending on your application, but for most cases both of these solutions should suffice.

Based on your example code above, you are going to want to format this information once you obtain the Unix Timestamp. Unformatted Unix time looks like: 1232659628

So in order to get something that will work, you can use the date() function to format it.

A good reference for ways to use the date() function is located in the PHP Manual.

As an example, the following code returns a date that looks like this: 01/22/2009 04:35:00 pm :

echo date("m/d/Y h:i:s a", time());

Solution 8 - Php

PHP's date function can do this job.

date()

Description:

string date(string $format [, int $timestamp = time()])

Returns a string formatted according to the given format string using the given integer timestamp or the current time if no timestamp is given.

Examples:

$today = date("F j, Y, g:i a");               // March 10, 2001, 5:16 pm
$today = date("m.d.y");                       // 03.10.01
$today = date("j, n, Y");                     // 10, 3, 2001
$today = date("Ymd");                         // 20010310
$today = date('h-i-s, j-m-y, it is w Day');   // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.'); // it is the 10th day.
$today = date("D M j G:i:s T Y");             // Sat Mar 10 17:16:18 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h');   // 17:03:18 m is month
$today = date("H:i:s");                       // 17:16:18
$today = date("Y-m-d H:i:s");                 // 2001-03-10 17:16:18 (the MySQL DATETIME format)

Solution 9 - Php

For the new PHP programmer might confuse why there are lot of method for to get current date and time and which one to use in their project.

1. date method (PHP 4, PHP 5, PHP 7)

This is the very common and very easiest way to get the date and time in php.

// set the default timezone to use. Available since PHP 5.1
date_default_timezone_set('UTC');


// Prints something like: Monday
echo date("l");

// Prints something like: Monday 8th of August 2005 03:12:46 PM
echo date('l jS \of F Y h:i:s A');

// Prints: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));

/* use the constants in the format parameter */
// prints something like: Wed, 25 Sep 2013 15:28:57 -0700
echo date(DATE_RFC2822);

// prints something like: 2000-07-01T00:00:00+00:00
echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000));

You can learn more about it in here

2. DateTime class (PHP 5 >= 5.2.0, PHP 7)

when you want to use PHP with OOP, this is the best way to get date and time.

<?php
// Specified date/time in your computer's time zone.
$date = new DateTime('2000-01-01');
echo $date->format('Y-m-d H:i:sP') . "\n";

// Specified date/time in the specified time zone.
$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";

// Current date/time in your computer's time zone.
$date = new DateTime();
echo $date->format('Y-m-d H:i:sP') . "\n";

// Current date/time in the specified time zone.
$date = new DateTime(null, new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";

// Using a UNIX timestamp.  Notice the result is in the UTC time zone.
$date = new DateTime('@946684800');
echo $date->format('Y-m-d H:i:sP') . "\n";

// Non-existent values roll over.
$date = new DateTime('2000-02-30');
echo $date->format('Y-m-d H:i:sP') . "\n";
?>

You can learn more about it in here

3. Carbon Date time package

if you are using Composer, Laravel, Symfony or any kinda framework this is the best way to get the date and time. Also this package extends DateTime class in php so you use all the method in Datetime class. This in-built in frameworks like laravel so you don't have to install it separately.

printf("Right now is %s", Carbon::now()->toDateTimeString());
printf("Right now in Vancouver is %s", Carbon::now('America/Vancouver')); // automatically converted to string
$tomorrow = Carbon::now()->addDay();
$lastWeek = Carbon::now()->subWeek();

// Carbon embed 823 languages:
echo $tomorrow->locale('fr')->isoFormat('dddd, MMMM Do YYYY, h:mm');
echo $tomorrow->locale('ar')->isoFormat('dddd, MMMM Do YYYY, h:mm');

$officialDate = Carbon::now()->toRfc2822String();

$howOldAmI = Carbon::createFromDate(1975, 5, 21)->age;

$noonTodayLondonTime = Carbon::createFromTime(12, 0, 0, 'Europe/London');

$internetWillBlowUpOn = Carbon::create(2038, 01, 19, 3, 14, 7, 'GMT');

if (Carbon::now()->isWeekend()) {
    echo 'Party!';
}
echo Carbon::now()->subMinutes(2)->diffForHumans(); // '2 minutes ago'

You can learn more about it in here

Hope this helps and if you know any other way to get the date and time feel free to edit the answer.

Solution 10 - Php

Use:

$date = date('m/d/Y h:i:s a', time());

It works.

Solution 11 - Php

 $date = new DateTime('now', new DateTimeZone('Asia/Kolkata'));
 echo $date->format('d-m-Y H:i:s');

Update

 //Also get am/pm in datetime:
 echo $date->format('d-m-Y H:i:s a'); // output 30-12-2013 10:16:15 am

For the date format, PHP date() Function is useful.

Solution 12 - Php

> its very simple > > echo $date = date('Y-m-d H:i:s');

Solution 13 - Php

echo date("d-m-Y H:i:sa");

This code will get the date and time of the server that the code runs on.

Solution 14 - Php

You can use this format also:

$date = date("d-m-Y");

Or

$date = date("Y-m-d H:i:s");

Solution 15 - Php

According to the article How to Get Current Datetime (NOW) with PHP, there are two common ways to get the current date. To get current datetime (now) with PHP, you can use the date class with any PHP version, or better the datetime class with PHP >= 5.2.

Various date format expressions are available here.

###Example using date

This expression will return NOW in format Y-m-d H:i:s.

<?php
    echo date('Y-m-d H:i:s');
?>

###Example using datetime class

This expression will return NOW in format Y-m-d H:i:s.

<?php
    $dt = new DateTime();
    echo $dt->format('Y-m-d H:i:s');
?>

Solution 16 - Php

<?php
echo "<b>".date('l\, F jS\, Y ')."</b>";
?>

Prints like this

Sunday, December 9th, 2012

Solution 17 - Php

<?php
// Assuming today is March 10th, 2001, 5:16:18 pm, and that we are in the
// Mountain Standard Time (MST) Time Zone

$today = date("F j, Y, g:i a");                 // March 10, 2001, 5:16 pm
$today = date("m.d.y");                         // 03.10.01
$today = date("j, n, Y");                       // 10, 3, 2001
$today = date("Ymd");                           // 20010310
$today = date('h-i-s, j-m-y, it is w Day');     // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.');   // it is the 10th day.
$today = date("D M j G:i:s T Y");               // Sat Mar 10 17:16:18 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h');     // 17:03:18 m is month
$today = date("H:i:s");                         // 17:16:18
$today = date("Y-m-d H:i:s");                   // 2001-03-10 17:16:18 (the MySQL DATETIME format)
?>

Solution 18 - Php

Set your time zone:

date_default_timezone_set('Asia/Calcutta');

Then call the date functions

$date = date('Y-m-d H:i:s');

Solution 19 - Php

date(format, timestamp)

The date function returns a string formatted according to the given format string using the given integer timestamp or the current time if no timestamp is given. In other words, timestamp is optional and defaults to the value of time().

And the parameters are -

> format - Required. Specifies the format of the timestamp

> timestamp - (Optional) Specifies a timestamp. Default is the current date and time

###How to get a simple date

The required format parameter of the date() function specifies how to format the date (or time).

Here are some characters that are commonly used for dates:

  1. d - Represents the day of the month (01 to 31)
  2. m - Represents a month (01 to 12)
  3. Y - Represents a year (in four digits)
  4. l (lowercase 'L') - Represents the day of the week

Other characters, like "/", ".", or "-" can also be inserted between the characters to add additional formatting.

The example below formats today's date in three different ways:

<?php
    echo "Today is " . date("Y/m/d") . "<br>";
    echo "Today is " . date("Y.m.d") . "<br>";
    echo "Today is " . date("Y-m-d") . "<br>";
    echo "Today is " . date("l");
?>

###Some useful links

Solution 20 - Php

The date format depends too:

echo date("d/m/Y H:i:sa"); // 13/04/2017 19:38:15pm

Solution 21 - Php

If you want a different timescale, please use:

$tomorrow  = mktime(0, 0, 0, date("m")  , date("d")+1, date("Y"));
$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"),   date("Y"));
$nextyear  = mktime(0, 0, 0, date("m"),   date("d"),   date("Y")+1);

date_default_timezone_set("Asia/Calcutta");
echo date("Y/m/d H:i:s");

Solution 22 - Php

date_default_timezone_set('Europe/Warsaw');
echo("<p class='time'>".date('H:i:s')."</p>");
echo("<p class='date'>".date('d/m/Y')."</p>");

Solution 23 - Php

You can use this code:

<?php
    $currentDateTime = date('Y-m-d H:i:s');
    echo $currentDateTime;
?>

Solution 24 - Php

Very simple

date_default_timezone_set('Asia/Kolkata');
$date = date('m/d/Y H:i:s', time());

Solution 25 - Php

I found that the simplest way of getting the current time in PHP is something like this.

//Prints out something like 10:00am Just be sure to set your timezone correctly.
date_default_timezone_set("America/Chicago");
$TIME = date('G:ia'); 

Solution 26 - Php

Another simple way is to take the timestamp of the current date and time. Use mktime() function:

$now = mktime(); // Return timestamp of the current time

Then you can convert this to another date format:

//// Prints something like: Thursday 26th of January 2017 01:12:36 PM
echo date('l jS \of F Y h:i:s A',$now);

More date formats are here: http://php.net/manual/en/function.date.php

Solution 27 - Php

The best way to get the current time and date is by the date function in PHP:

$date = date('FORMAT'); // FORMAT E.g.: Y-m-d H:i:s

$current_date = date('Y-m-d H:i:s');

With the Unix timestamp:

$now_date = date('FORMAT', time()); // FORMAT Eg : Y-m-d H:i:s

To set the server time zone:

date_default_timezone_set('Asia/Calcutta');

A different time zone list is here.

Solution 28 - Php

// Set the default timezone to use. Available since PHP 5.1
date_default_timezone_set('UTC');


// Prints something like: Monday
echo date("l");

// Prints something like: Monday 8th of August 2016 03:12:46 PM
echo date('l jS \of F Y h:i:s A');

// Prints: July 1, 2016 is on a Saturday
echo "July 1, 2016 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2016));

/* Use the constants in the format parameter */
// Prints something like: Wed, 25 Sep 2013 15:28:57 -0700
echo date(DATE_RFC2822);

// Prints something like: 2016-07-01T00:00:00+00:00
echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000));

Solution 29 - Php

If you are Bangladeshi, and if you want to get the time of Dhaka then use this:

$date = new DateTime();
$date->setTimeZone(new DateTimeZone("Asia/Dhaka"));
$get_datetime = $date->format('d.m.Y H:i:s');

Solution 30 - Php

Normally, this function for date is useful for everyone: date("Y/m/d");

But time is something different, because the time function depends on either the PHP version or system date.

So probably use it like this to get our own time zone:

$date = new DateTime('now', new DateTimeZone('Asia/Kolkata'));
echo $date->format('H:m:s');

This function shows the 24 hours time.

Solution 31 - Php

echo date('y-m-d'); // Today

> This will return today's date.

Solution 32 - Php

Here are some characters that are commonly used for times:

  1. h - 12-hour format of an hour with leading zeros (01 to 12)

  2. i - Minutes with leading zeros (00 to 59)

  3. s - Seconds with leading zeros (00 to 59)

  4. a - Lowercase Ante meridiem and Post meridiem (am or pm)

Get your time zone

<?php
    date_default_timezone_set("America/New_York");
    echo "The time is " . date("h:i:sa");
?>

Check this out (optional)

<?php
    $d = mktime(11, 14, 54, 8, 12, 2014);
    echo "Created date is " . date("Y-m-d h:i:sa", $d);
?>

For date

<?php
    echo "Today is " . date("Y/m/d") . ;
    echo "Today is " . date("Y.m.d") . ;
    echo "Today is " . date("Y-m-d") . ;
    echo "Today is " . date("l");
?>

Here are some characters that are commonly used for dates:

  1. d - Represents the day of the month (01 to 31)
  2. m - Represents a month (01 to 12)
  3. Y - Represents a year (in four digits)
  4. l (lowercase 'L') - Represents the day of the week

Source-W3-Schools

Solution 33 - Php

simply use: date("Y-m-d H:i:s") this will give you your date and time like '2020-08-22 12:20:30' this . add date_default_timezone_set("your time zone") before date() function to get the time date of your area/zone. here you can find you time zone

Solution 34 - Php

Here are some characters that are commonly used for times:

  • d - Represents the day of the month (01 to 31)

  • m - Represents a month (01 to 12)

  • Y - Represents a year (in four digits)

  • l (lowercase 'L') - Represents the day of the week

  • H - 24-hour format of an hour (00 to 23)

  • h - 12-hour format of an hour with leading zeros (01 to 12)

  • i - Minutes with leading zeros (00 to 59)

  • s - Seconds with leading zeros (00 to 59)

  • a - Lowercase Ante meridiem and Post meridiem (am or pm)

example :

echo "Today " . date("Y/m/d") ;
echo "time " . date("h:i:sa");

Solution 35 - Php

If you want to get the date like 12-3-2016, separate each day, month, and year value, then copy-paste this code:

$day = date("d");
$month = date("m");
$year = date("y");
print "date" . $day . "-" . $month . "-" . $year;

Solution 36 - Php

We can use the date function and set the default timezone:

<?php
    date_default_timezone_set("Asia/Kolkata");
    echo "Today is " . date("Y/m/d") . "<br>";
    echo "Today is " . date("Y.m.d") . "<br>";
    echo "Today is " . date("Y-m-d") . "<br>";
    echo "Today is " . date("l");
    echo "The time is " . date("h:i:sa");
?>

Solution 37 - Php

Your Country Time Zone: List of Supported Timezones

date_default_timezone_set('Asia/Kolkata');

$dateYmd = date('Y-m-d');
echo "Current Year Month Day: $dateYmd";

> Current Year Month Day: 2022-01-03

$datehms = date('h:i:s');
echo "Current Hour Minute Second: $datehms";

> Current Hour Minute Second: 11:05:38

Solution 38 - Php

PHP returns the current time in seconds. You need to format them in whatever format you want.

<?php
    // time() returns current time in seconds
    $in_seconds = time();

    // strftime - Format a local time/date according to locale settings
    echo strftime("%m/%d/%y", $in_seconds);
?>

Reference: http://php.net/manual/en/function.strftime.php

Solution 39 - Php

You can simply use this code to get current date and time

echo date('r', time());

Solution 40 - Php

Linux server time and PHP time() difference time zone as follows:

<?php
    putenv("TZ=Asia/Kabul");
    $t = time();
    echo date('d/m/Y H:i:sa', $t);
?>

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMikeView Question on Stackoverflow
Solution 1 - PhpNJ.View Answer on Stackoverflow
Solution 2 - PhpShadrack B. OrinaView Answer on Stackoverflow
Solution 3 - PhpMahdiView Answer on Stackoverflow
Solution 4 - PhpShapCyberView Answer on Stackoverflow
Solution 5 - PhpRob HruskaView Answer on Stackoverflow
Solution 6 - PhpGumboView Answer on Stackoverflow
Solution 7 - PhpGrizzly Peak SoftwareView Answer on Stackoverflow
Solution 8 - PhpSubodh GhulaxeView Answer on Stackoverflow
Solution 9 - PhpSupun PraneethView Answer on Stackoverflow
Solution 10 - PhpMikeView Answer on Stackoverflow
Solution 11 - PhpKailasView Answer on Stackoverflow
Solution 12 - PhpJuned AnsariView Answer on Stackoverflow
Solution 13 - PhpNaeem Moavia SiddiquiView Answer on Stackoverflow
Solution 14 - PhpKalaivani MView Answer on Stackoverflow
Solution 15 - PhpDavidView Answer on Stackoverflow
Solution 16 - Phpuser1642018View Answer on Stackoverflow
Solution 17 - PhpMr. HKView Answer on Stackoverflow
Solution 18 - PhpkkarayatView Answer on Stackoverflow
Solution 19 - PhpJoomlerView Answer on Stackoverflow
Solution 20 - Phphector teranView Answer on Stackoverflow
Solution 21 - PhpJayminLimbachiyaView Answer on Stackoverflow
Solution 22 - PhpDariusz JView Answer on Stackoverflow
Solution 23 - PhpRichestSoftView Answer on Stackoverflow
Solution 24 - PhpKowsigan AtsayamView Answer on Stackoverflow
Solution 25 - PhpBullyenView Answer on Stackoverflow
Solution 26 - PhprtroulakView Answer on Stackoverflow
Solution 27 - PhpAshokView Answer on Stackoverflow
Solution 28 - PhpElyorView Answer on Stackoverflow
Solution 29 - PhpA.A NomanView Answer on Stackoverflow
Solution 30 - PhpMeena ArumugamView Answer on Stackoverflow
Solution 31 - PhpAjay KatariyaView Answer on Stackoverflow
Solution 32 - PhpRaheel KhanView Answer on Stackoverflow
Solution 33 - PhpShiba DasView Answer on Stackoverflow
Solution 34 - PhpTijo JohnView Answer on Stackoverflow
Solution 35 - PhpPir Fahim ShahView Answer on Stackoverflow
Solution 36 - PhpSiddharth ShuklaView Answer on Stackoverflow
Solution 37 - PhpMr. CoderxView Answer on Stackoverflow
Solution 38 - PhpGnanasekar SView Answer on Stackoverflow
Solution 39 - PhpKarthik SWOTView Answer on Stackoverflow
Solution 40 - PhpAhmad ShakibView Answer on Stackoverflow