Skip to content

Commit d17175c

Browse files
committed
Merge remote-tracking branch 'derickr/GH-10447-p-format-specifier' into PHP-8.1
2 parents 00be6e1 + a42bf93 commit d17175c

File tree

3 files changed

+17
-1
lines changed

3 files changed

+17
-1
lines changed

NEWS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ PHP NEWS
1111
. Fixed bug GH-10437 (Segfault/assertion when using fibers in shutdown
1212
function after bailout). (trowski)
1313

14+
- Date:
15+
. Fix GH-10447 ('p' format specifier does not yield 'Z' for 00:00). (Derick)
16+
1417
- FFI:
1518
. Fixed incorrect bitshifting and masking in ffi bitfield. (nielsdos)
1619

ext/date/php_date.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -716,7 +716,7 @@ static zend_string *date_format(const char *format, size_t format_len, timelib_t
716716
/* timezone */
717717
case 'I': length = slprintf(buffer, sizeof(buffer), "%d", localtime ? offset->is_dst : 0); break;
718718
case 'p':
719-
if (!localtime || strcmp(offset->abbr, "UTC") == 0 || strcmp(offset->abbr, "Z") == 0) {
719+
if (!localtime || strcmp(offset->abbr, "UTC") == 0 || strcmp(offset->abbr, "Z") == 0 || strcmp(offset->abbr, "GMT+0000") == 0) {
720720
length = slprintf(buffer, sizeof(buffer), "%s", "Z");
721721
break;
722722
}

ext/date/tests/gh10447.phpt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
--TEST--
2+
Bug GH-10447 ('p' format specifier does not yield 'Z' for 00:00)
3+
--FILE--
4+
<?php
5+
$date = new \DateTimeImmutable('2023-01-25T00:00:00+00:00');
6+
echo $date->format('Y-m-d\TH:i:sp'), "\n";
7+
8+
$date = new \DateTimeImmutable('2023-01-25T00:00:00-00:00');
9+
echo $date->format('Y-m-d\TH:i:sp'), "\n";
10+
?>
11+
--EXPECT--
12+
2023-01-25T00:00:00Z
13+
2023-01-25T00:00:00Z

0 commit comments

Comments
 (0)