Edit report at https://bugs.php.net/bug.php?id=65184&edit=1
ID: 65184 Updated by: a...@php.net Reported by: k-yamashita at ver2 dot jp Summary: strftime() returns insufficient-length string under multibyte locales Status: Closed Type: Bug Package: Date/time related Operating System: Windows PHP Version: 5.5.0 Assigned To: ab Block user comment: N Private report: N New Comment: Thanks for pointing to that. So lets do both, just pushed a fix passing an explicit timestamp. Previous Comments: ------------------------------------------------------------------------ [2013-07-03 19:17:47] k-yamashita at ver2 dot jp It works fine. Thanks a lot! Well, checking byte values will fail if unit test is performed on other than Wednesday. I suggest just checking the length. --FILE-- <?php setlocale(LC_ALL, 'Japanese_Japan.932'); echo strlen(strftime('%A')) . "\n"; ?> ===DONE=== --EXPECT-- 6 ===DONE=== ------------------------------------------------------------------------ [2013-07-03 09:30:03] a...@php.net @k-yamashita please test the next snapshot. Thanks. ------------------------------------------------------------------------ [2013-07-03 09:25:30] a...@php.net Automatic comment on behalf of ab Revision: http://git.php.net/?p=php-src.git;a=commit;h=5324416b6514b6de53e7de269bc18b5807701051 Log: Fixed bug #65184 strftime() returns insufficient-length ------------------------------------------------------------------------ [2013-07-02 15:50:55] k-yamashita at ver2 dot jp Description: ------------ VC11's strftime() returns number of wide characters rather than bytes but PHP seems to rely on it to determine byte length. http://connect.microsoft.com/VisualStudio/feedback/details/766205/vs2012-strftime-has-incorrect-return-value-in-vc-11-with-multibyte-codepages Test script: --------------- <?php setlocale(LC_ALL, 'Japanese_Japan.932'); echo strftime('%A'); Expected result: ---------------- >php a.php | od -t x1 0000000 90 85 97 6a 93 fa 0000006 Above is Shift JIS encoded Japanese word for "Wednesday". Other week days are all 6 bytes long too. Actual result: -------------- >php a.php | od -t x1 0000000 90 85 97 0000003 ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=65184&edit=1