8000 Support DateTimeInterface in IntlDateFormatter::format · symfony/symfony@73044d6 · GitHub
[go: up one dir, main page]

Skip to content

Commit 73044d6

Browse files
committed
Support DateTimeInterface in IntlDateFormatter::format
1 parent 1fc080b commit 73044d6

File tree

2 files changed

+12
-3
lines changed
  • src/Symfony/Component/Intl
    • < 8000 div class="PRIVATE_TreeView-item-toggle prc-TreeView-TreeViewItemToggle-gWUdE prc-TreeView-TreeViewItemToggleHover-nEgP- prc-TreeView-TreeViewItemToggleEnd-t-AEB">
      DateFormatter
  • Tests/DateFormatter
  • 2 files changed

    +12
    -3
    lines changed

    src/Symfony/Component/Intl/DateFormatter/IntlDateFormatter.php

    Lines changed: 3 additions & 3 deletions
    Original file line numberDiff line numberDiff line change
    @@ -176,7 +176,7 @@ public static function create($locale, $datetype, $timetype, $timezone = null, $
    176176
    /**
    177177
    * Format the date/time value (timestamp) as a string.
    178178
    *
    179-
    * @param int|\DateTime $timestamp The timestamp to format
    179+
    * @param int|\DateTimeInterface $timestamp The timestamp to format
    180180
    *
    181181
    * @return string|bool The formatted value or false if formatting failed
    182182
    *
    @@ -195,7 +195,7 @@ public function format($timestamp)
    195195

    196196
    // behave like the intl extension
    197197
    $argumentError = null;
    198-
    if (!\is_int($timestamp) && !$timestamp instanceof \DateTime) {
    198+
    if (!\is_int($timestamp) && !$timestamp instanceof \DateTimeInterface) {
    199199
    $argumentError = sprintf('datefmt_format: string \'%s\' is not numeric, which would be required for it to be a valid date', $timestamp);
    200200
    }
    201201

    @@ -207,7 +207,7 @@ public function format($timestamp)
    207207
    return false;
    208208
    }
    209209

    210-
    if ($timestamp instanceof \DateTime) {
    210+
    if ($timestamp instanceof \DateTimeInterface) {
    211211
    $timestamp = $timestamp->getTimestamp();
    212212
    }
    213213

    src/Symfony/Component/Intl/Tests/DateFormatter/AbstractIntlDateFormatterTest.php

    Lines changed: 9 additions & 0 deletions
    Original file line numberDiff line numberDiff line change
    @@ -76,6 +76,7 @@ public function testFormat($pattern, $timestamp, $expected)
    7676
    public function formatProvider()
    7777
    {
    7878
    $dateTime = new \DateTime('@0');
    79+
    $dateTimeImmutable = new \DateTimeImmutable('@0');
    7980

    8081
    $formatData = [
    8182
    /* general */
    @@ -250,6 +251,12 @@ public function formatProvider()
    250251
    $formatData[] = ['h:mm a', $dateTime, '12:00 AM'];
    251252
    $formatData[] = ['yyyyy.MMMM.dd hh:mm aaa', $dateTime, '01970.January.01 12:00 AM'];
    252253

    254+
    /* general, DateTimeImmutable */
    255+
    $formatData[] = ['y-M-d', $dateTimeImmutable, '1970-1-1'];
    256+
    $formatData[] = ["EEE, MMM d, ''yy", $dateTimeImmutable, "Thu, Jan 1, '70"];
    257+
    $formatData[] = ['h:mm a', $dateTimeImmutable, '12:00 AM'];
    258+
    $formatData[] = ['yyyyy.MMMM.dd hh:mm aaa', $dateTimeImmutable, '01970.January.01 12:00 AM'];
    259+
    253260
    if (IcuVersion::compare(Intl::getIcuVersion(), '59.1', '>=', 1)) {
    254261
    // Before ICU 59.1 GMT was used instead of UTC
    255262
    $formatData[] = ["yyyy.MM.dd 'at' HH:mm:ss zzz", 0, '1970.01.01 at 00:00:00 UTC'];
    @@ -269,6 +276,8 @@ public function testFormatUtcAndGmtAreSplit()
    269276

    270277
    $this->assertSame('1970.01.01 at 00:00:00 GMT', $gmtFormatter->format(new \DateTime('@0')));
    271278
    $this->assertSame('1970.01.01 at 00:00:00 UTC', $utcFormatter->format(new \DateTime('@0')));
    279+
    $this->assertSame('1970.01.01 at 00:00:00 GMT', $gmtFormatter->format(new \DateTimeImmutable('@0')));
    280+
    $this->assertSame('1970.01.01 at 00:00:00 UTC', $utcFormatter->format(new \DateTimeImmutable('@0')));
    272281
    }
    273282

    274283
    /**

    0 commit comments

    Comments
     (0)
    0