My answer:
4 dice. (6 faced).
Numbers on each die:
2 sets of the following 2 dice.
0, 1, 2, 3, 4, 6
0, 1, 2, 5, 7, 8
Reasoning:
1 set will be used for the month and one set for the day.
I will explain how you can get all the numbers from 1 to 31 using one set of dice described above. If you can do it for the day (up to 31) you can do it for the month also with the other set (up to 12).
Let's name the dice A and B in the order listed above.
.
01 - A0, B1
02 - A0, B2
03 - A0, B3
04 - B0, A4
05 - A0, B5
06 - B0, A6
07 - A0, B7
08 - A0, B8
09 - B0, A6 reversed
10 - A1, B0
11 - A1, B1
12 - A1, B2
13 - A1, B3
14 - B1, A4
15 - A1, B5
16 - B1, A6
17 - A1, B7
18 - A1, B8
19 - B1, A6 reversed
20 - A2, B0
21 - A2, B1
22 - A2, B2
23 - A2, B3
24 - B2, A4
25 - A2, B5
26 - B2, A6
27 - A2, B7
28 - A2, B8
29 - B2, A6 reversed
30 - A3, B0
31 - A3, B1
Additional reasoning:
Because you have the numbers 11 and 22 it means 1 and 2 need to go on every die.
You need one die to have a 0, but you cannot form 9 numbers (1 to 9) from a single die, so you need 0 on both of them.
Summarize: We now have 2 dice with the number 0,1 & 2.
Since we need all the digits we need somehow to add the remaining 7 digits in the remaining 6 available faces.
Since 6 can double as a 9 and we never have to create the numbers 66, 69,96 or 99 we get to have 6 number on 6 faces. Just split them 3 on one die and 3 on the other. I don't think the order is important.