umm... it's because the date 31st isn't in those months... Simply, they're switching to February <current day right now> 2006, because you did not specify a day.
I really don't see the use case for that anywhere.
Probably hard to fix backwards compatible though...
Javascript:
new Date("Feb 2006")
> Wed Feb 01 2006 00:00:00 GMT-0800 (Pacific Standard Time)
Ruby: require 'time'
Time.parse "Feb 2006"
=> 2006-02-01 00:00:00 -0700 >>> from datetime import datetime
>>> from dateutil import parser
>>> now = datetime.now()
>>> first = datetime(now.year, now.month, 1, 12, 0, 0)
>>> dateutil.parser.parse('February 2006', default=first)
datetime.datetime(2006, 2, 1, 12, 0)