From 476636841f450cf90c4a2a9516160303f0df3cb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Kocsis?= Date: Wed, 22 Jan 2020 00:13:29 +0100 Subject: [PATCH] Fix #78649 Provide ICU RELATIVE_ constants Closes GH-5105 --- ext/intl/dateformat/dateformat.c | 4 ++ .../tests/dateformat_format_relative.phpt | 72 +++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 ext/intl/tests/dateformat_format_relative.phpt diff --git a/ext/intl/dateformat/dateformat.c b/ext/intl/dateformat/dateformat.c index 79e1a3f4922..10d9dde96ec 100644 --- a/ext/intl/dateformat/dateformat.c +++ b/ext/intl/dateformat/dateformat.c @@ -44,6 +44,10 @@ void dateformat_register_constants( INIT_FUNC_ARGS ) DATEFORMATTER_EXPOSE_CLASS_CONST( MEDIUM ); DATEFORMATTER_EXPOSE_CLASS_CONST( SHORT ); DATEFORMATTER_EXPOSE_CLASS_CONST( NONE ); + DATEFORMATTER_EXPOSE_CUSTOM_CLASS_CONST( "RELATIVE_FULL", UDAT_FULL_RELATIVE ); + DATEFORMATTER_EXPOSE_CUSTOM_CLASS_CONST( "RELATIVE_LONG", UDAT_LONG_RELATIVE ); + DATEFORMATTER_EXPOSE_CUSTOM_CLASS_CONST( "RELATIVE_MEDIUM", UDAT_MEDIUM_RELATIVE ); + DATEFORMATTER_EXPOSE_CUSTOM_CLASS_CONST( "RELATIVE_SHORT", UDAT_SHORT_RELATIVE ); /* DATEFORMATTER_EXPOSE_CUSTOM_CLASS_CONST( "GREGORIAN", DATEF_GREGORIAN ); diff --git a/ext/intl/tests/dateformat_format_relative.phpt b/ext/intl/tests/dateformat_format_relative.phpt new file mode 100644 index 00000000000..f8e28220e5c --- /dev/null +++ b/ext/intl/tests/dateformat_format_relative.phpt @@ -0,0 +1,72 @@ +--TEST-- +datefmt_format_code() with relative formats +--SKIPIF-- + +--FILE-- +format($time) . "\n"; +} + +function getToday(): DateTimeImmutable { + return new DateTimeImmutable(); +} + +function getYesterday(): DateTimeImmutable { + return new DateTimeImmutable("-1 day"); +} + +function getTomorrow(): DateTimeImmutable { + return new DateTimeImmutable("+1 day"); +} + +function getDayInPast(): DateTimeImmutable { + return new DateTimeImmutable("2020-01-20 20:20:20", new DateTimeZone("UTC")); +} + +--EXPECT-- +yesterday +yesterday +yesterday +yesterday +today +today +today +today +tomorrow +tomorrow +tomorrow +tomorrow +Monday, January 20, 2020 +January 20, 2020 +Jan 20, 2020 +1/20/20