rarst/wpdatetime

This package is abandoned and no longer maintained. No replacement package was suggested.

Extension of PHP’s DateTime and DateTimeZone classes for WordPress context.

0.4 2019-11-19 12:27 UTC

This package is auto-updated.

Last update: 2020-08-12 09:56:51 UTC


README

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.

Retired

The project is retired in favor of native WordPress 5.3+ functions:

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 7 (not included).

composer install
phpunit

License

MIT