Sling Academy
Home/PHP/PHP: How to get only date part from date time

PHP: How to get only date part from date time

Last updated: January 09, 2024

Overview

Managing dates and times is a common task in PHP development. At times, a developer might require just the date component from a DateTime object. This tutorial demonstrates how to extract only the date part effectively.

Understanding DateTime in PHP

PHP’s DateTime class offers a comprehensive suite of functions to handle date and time. It allows for object-oriented manipulation of dates and can be instantiated to represent a specific moment in time.

$dateTime = new DateTime('2023-03-15 08:30:00');

Once a DateTime object is created, getting just the date portion can be achieved in various ways. Let’s start with the most straightforward approach and progress towards more specific scenarios.

Using format Method

The format method is the most direct way of extracting the date. It allows formatting both date and time as strings, according to the provided format characters:

$date = $dateTime->format('Y-m-d');

This will result in a string containing only the year, month, and day, respectively. But what if we encounter different formats or requirements? Let’s delve deeper.

Dealing with Timezones

Timezones can play a crucial role when manipulating DateTime objects. To ensure the date is extracted for the correct timezone, set the timezone either during the object’s creation or before calling the format method:

$dateTime = new DateTime('now', new DateTimeZone('America/New_York'));
$date = $dateTime->format('Y-m-d');

Without specifying the timezone, PHP uses the default set in the php.ini configuration file.

Using DateTime::createFromFormat

When dealing with various date string formats, DateTime::createFromFormat becomes useful. This static method parses a date-time string according to a specified format:

$dateTime = DateTime::createFromFormat('j-M-Y', '15-Mar-2023');
$date = $dateTime->format('Y-m-d');

This also allows for the date part extraction regardless of the initial date-time string format.

Handling SQL DateTime Format

If working with SQL databases, you might retrieve a date-time in the SQL format. PHP can handle this format easily:

$sqlDateTime = '2023-03-15 08:30:00';
$dateTime = new DateTime($sqlDateTime);
$date = $dateTime->format('Y-m-d');

This precisely trims the time part off, leaving you with a clean date.

Working with Current Time

To extract the date part from the current time, simply create a new DateTime object without passing any argument, and then format it:

$dateTime = new DateTime();
$date = $dateTime->format('Y-m-d');

Utilizing DateTimeImmutable

When the application should not alter the original DateTime object, DateTimeImmutable can be used:

$immutable = new DateTimeImmutable('2023-03-15 08:30:00');
$date = $immutable->format('Y-m-d');

This guarantees that the original object remains unchanged after other operations.

Advanced Formatting with IntlDateFormatter

For localization purposes, the IntlDateFormatter comes in handy, providing locale-specific date formatting:

$formatter = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::NONE
);
$date = $formatter->format(new DateTime('2023-03-15 08:30:00'));

This not only extracts the date but also formats it according to US English conventions.

Using date() Function

Besides the DateTime object, PHP’s date() function can accomplish the same task in conjunction with strtotime():

$date = date('Y-m-d', strtotime('2023-03-15 08:30:00'));

This is less object-oriented but is still effective, particularly in legacy codebases.

Conclusion

This tutorial has covered various methods to extract just the date part from a date-time in PHP, catering to both novice and experienced developers. Implementing these techniques ensures precision and compatibility with different formats and requirements.

Next Article: PHP: Calculate a future date from a given date

Previous Article: PHP: Calculate people’s age from date of birth

Series: Basic PHP Tutorials

PHP

You May Also Like

  • Pandas DataFrame.value_counts() method: Explained with examples
  • Constructor Property Promotion in PHP: Tutorial & Examples
  • Understanding mixed types in PHP (5 examples)
  • Union Types in PHP: A practical guide (5 examples)
  • PHP: How to implement type checking in a function (PHP 8+)
  • Symfony + Doctrine: Implementing cursor-based pagination
  • Laravel + Eloquent: How to Group Data by Multiple Columns
  • PHP: How to convert CSV data to HTML tables
  • Using ‘never’ return type in PHP (PHP 8.1+)
  • Nullable (Optional) Types in PHP: A practical guide (5 examples)
  • Explore Attributes (Annotations) in Modern PHP (5 examples)
  • An introduction to WeakMap in PHP (6 examples)
  • Type Declarations for Class Properties in PHP (5 examples)
  • Static Return Type in PHP: Explained with examples
  • PHP: Using DocBlock comments to annotate variables
  • PHP: How to ping a server/website and get the response time
  • PHP: 3 Ways to Get City/Country from IP Address
  • PHP: How to find the mode(s) of an array (4 examples)
  • PHP: Calculate standard deviation & variance of an array