|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #69661 date_parse says the day is 1 instead of false
Submitted: 2015-05-19 11:17 UTC Modified: 2022-05-13 14:49 UTC
Avg. Score:2.7 ± 1.2
Reproduced:2 of 2 (100.0%)
Same Version:2 (100.0%)
Same OS:2 (100.0%)
From: php-bugs at xpaw dot me Assigned:
Status: Wont fix Package: Date/time related
PHP Version: 5.6.9 OS: Ubuntu
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
Block user comment
Status: Assign to:
Bug Type:
From: php-bugs at xpaw dot me
New email:
PHP Version: OS:


 [2015-05-19 11:17 UTC] php-bugs at xpaw dot me
I don't know if this is expected behaviour or not, but parsing a date without a day, will produce a result where 'day' will be set to 1. If this is expected, there really should be a parameter that disables this. I'm using this for user provided data, and it's not really valid.

Test script:
var_dump(date_parse("May 2013"));

Expected result:

Actual result:


Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2015-05-19 11:54 UTC]
-Status: Open +Status: Verified
 [2015-05-19 11:54 UTC]
See also <>.
 [2017-01-04 17:04 UTC] contact at frank-liepert dot de
This is expected behaviour, see "Textual month and four digit year (Day reset to 1)" on
 [2018-02-14 18:27 UTC]
-Status: Verified +Status: Not a bug -Assigned To: +Assigned To: cmb
 [2018-02-14 18:27 UTC]
Indeed, this is documented behavior!
 [2018-02-14 18:48 UTC] php-bugs at xpaw dot me
Documented behaviour does not make it correct behaviour.

Currently I have no way of testing if the day field is default or was actually parsed from the input.
 [2018-02-14 22:08 UTC]
-Status: Not a bug +Status: Re-Opened -Type: Bug +Type: Feature/Change Request -Assigned To: cmb +Assigned To:
 [2018-02-14 22:08 UTC]
Okay, changing to feature request.
 [2022-05-13 14:49 UTC]
-Status: Re-Opened +Status: Wont fix
 [2022-05-13 14:49 UTC]
If you want more control over parsing dates, where the behaviour of strtotime/ the DateTime constructor does not apply, you can use the date_parse_from_format function, like:

php -r 'var_dump(date_parse_from_format("M Y", "May 2013"));'

This will then show you the right information:

array(12) {
  'year' =>
  'month' =>
  'day' =>
PHP Copyright © 2001-2022 The PHP Group
All rights reserved.
Last updated: Fri Aug 19 01:05:46 2022 UTC