Extension of PHP’s DateTime and DateTimeZone classes for WordPress context.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
tests
.gitignore
CHANGELOG.md
LICENSE.md
README.md
composer.json
composer.lock
phpunit.xml

README.md

WpDateTime — DateTime extension for WordPress

Scrutinizer Code Quality Build Status Code Coverage Total Downloads Latest Stable Version PHP from Packagist PDS Skeleton

WpDateTime is an extension of PHP’s DateTime and DateTimeZone classes for WordPress context.

It makes it easy to instance time objects from WordPress posts and produce localized output with correct format and time zone handling.

Installation

Require as Composer package in your project:

composer require rarst/wpdatetime

Usage

WpDateTime and WpDateTimeImmutable

Classes extend DateTime and DateTimeImmutable respectively and retain their full functionality.

You can use shared WpDateTimeInterface to hint for both.

Methods

  • WpDateTime::createFromPost() creates object instance from WP post. Time zone defaults to current WP setting.
  • WpDateTime->formatI18n() outputs formatted and localized date in object’s time zone.
  • WpDateTime->formatDate() outputs in current WP date format.
  • WpDateTime->formatTime() outputs in current WP time format.

Example

use Rarst\WordPress\DateTime\WpDateTime;

$date = WpDateTime::createFromPost( get_post() );

printf(
	'Posted on: <time datetime="%s">%s</time>',
	$date->format( DATE_RFC3339 ),
	$date->formatDate()
);
// Posted on: <time datetime="2014-11-07T15:36:31+02:00">Ноябрь 7, 2014</time>

WpDateTimeZone

Class extends DateTimeZone.

Methods

  • WpDateTimeZone::getWpTimezone() static method creates object instance from current WordPress settings. Defaults to timezone_string option and falls back to gmt_offset one.

Example

use Rarst\WordPress\DateTime\WpDateTimeZone;

// Timezone string.
var_dump( WpDateTimeZone::getWpTimezone()->getName() );
// string(11) "Europe/Kiev"

// GMT offset.
var_dump( WpDateTimeZone::getWpTimezone()->getName() );
// string(6) "+02:00"

Tests

Tests use Brain Monkey (included in dependencies) and PHPUnit 6 (not included).

composer install
phpunit

License

MIT