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.
The project is retired in favor of native WordPress 5.3+ functions:
WpDateTime::createFromPost()
—get_post_datetime()
WpDateTime->formatI18n()
—wp_date()
WpDateTimeZone::getWpTimezone()
—wp_timezone()
Require as Composer package in your project:
composer require rarst/wpdatetime
Classes extend DateTime
and DateTimeImmutable
respectively and retain their full functionality.
You can use shared WpDateTimeInterface
to hint for both.
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.
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>
Class extends DateTimeZone
.
WpDateTimeZone::getWpTimezone()
static method creates object instance from current WordPress settings. Defaults totimezone_string
option and falls back togmt_offset
one.
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 use Brain Monkey (included in dependencies) and PHPUnit 7 (not included).
composer install
phpunit
MIT