rarst / wpdatetime
Extension of PHP’s DateTime and DateTimeZone classes for WordPress context.
Installs: 83 682
Dependents: 2
Suggesters: 0
Security: 0
Stars: 66
Watchers: 7
Forks: 1
Open Issues: 0
Requires
- php: >=5.5.10
Requires (Dev)
- brain/monkey: ^2.1
- pds/skeleton: ^1.0
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:
WpDateTime::createFromPost()
—get_post_datetime()
WpDateTime->formatI18n()
—wp_date()
WpDateTimeZone::getWpTimezone()
—wp_timezone()
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 totimezone_string
option and falls back togmt_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