diff --git a/src/Bindings/DateFormatter.php b/src/Bindings/DateFormatter.php new file mode 100644 index 0000000..f39e208 --- /dev/null +++ b/src/Bindings/DateFormatter.php @@ -0,0 +1,44 @@ +setTimezone( $timezone ); + return $dt->format( $format ); + } +} diff --git a/src/Bindings/Providers/FeedProvider.php b/src/Bindings/Providers/FeedProvider.php index fe9ce8a..f5e17e4 100644 --- a/src/Bindings/Providers/FeedProvider.php +++ b/src/Bindings/Providers/FeedProvider.php @@ -11,6 +11,7 @@ use Feedwright\Renderer\Context; use Feedwright\Routing\FeedEndpoint; +use Feedwright\Bindings\DateFormatter; use Feedwright\Bindings\ProviderInterface; defined( 'ABSPATH' ) || exit; @@ -86,7 +87,7 @@ private function compute_last_build_date( \WP_Post $feed_post ): int { */ private function format_date( int $timestamp, string $modifier ): string { $format = '' === $modifier ? 'r' : $modifier; - return (string) wp_date( $format, $timestamp ); + return DateFormatter::format( $timestamp, $format ); } /** diff --git a/src/Bindings/Providers/NowProvider.php b/src/Bindings/Providers/NowProvider.php index 875657e..97d6049 100644 --- a/src/Bindings/Providers/NowProvider.php +++ b/src/Bindings/Providers/NowProvider.php @@ -10,6 +10,7 @@ namespace Feedwright\Bindings\Providers; use Feedwright\Renderer\Context; +use Feedwright\Bindings\DateFormatter; use Feedwright\Bindings\ProviderInterface; defined( 'ABSPATH' ) || exit; @@ -41,7 +42,7 @@ public function resolve( string $path, string $modifier, Context $ctx ): ?string return null; } $format = '' === $modifier ? 'c' : $modifier; - return (string) wp_date( $format ); + return DateFormatter::format( time(), $format ); } /** diff --git a/src/Bindings/Providers/PostProvider.php b/src/Bindings/Providers/PostProvider.php index 30cc2b9..7fc5727 100644 --- a/src/Bindings/Providers/PostProvider.php +++ b/src/Bindings/Providers/PostProvider.php @@ -10,6 +10,7 @@ namespace Feedwright\Bindings\Providers; use Feedwright\Renderer\Context; +use Feedwright\Bindings\DateFormatter; use Feedwright\Bindings\ProviderInterface; defined( 'ABSPATH' ) || exit; @@ -50,9 +51,15 @@ public function resolve( string $path, string $modifier, Context $ctx ): ?string case 'post_excerpt': return (string) get_the_excerpt( $post ); case 'post_date': - return (string) get_the_date( '' === $modifier ? 'c' : $modifier, $post ); + return DateFormatter::format( + (int) get_post_time( 'U', true, $post ), + '' === $modifier ? 'c' : $modifier + ); case 'post_modified': - return (string) get_the_modified_date( '' === $modifier ? 'c' : $modifier, $post ); + return DateFormatter::format( + (int) get_post_modified_time( 'U', true, $post ), + '' === $modifier ? 'c' : $modifier + ); case 'post_status': return (string) get_post_status( $post ); case 'post_name': diff --git a/src/Bindings/Providers/PostRawProvider.php b/src/Bindings/Providers/PostRawProvider.php index 0164e6b..b1bb646 100644 --- a/src/Bindings/Providers/PostRawProvider.php +++ b/src/Bindings/Providers/PostRawProvider.php @@ -10,6 +10,7 @@ namespace Feedwright\Bindings\Providers; use Feedwright\Renderer\Context; +use Feedwright\Bindings\DateFormatter; use Feedwright\Bindings\ProviderInterface; defined( 'ABSPATH' ) || exit; @@ -79,7 +80,7 @@ public function resolve( string $path, string $modifier, Context $ctx ): ?string if ( false === $date_time ) { return $raw; } - return (string) wp_date( $modifier, $date_time->getTimestamp(), $timezone ); + return DateFormatter::format( $date_time->getTimestamp(), $modifier, $timezone ); } return null;