Because August 0th does not exist. The gmmktime function converts it to July 31th.
You can check it by saying this:
print(date("F-d", gmmktime(0, 0, 0, 8, 0, 0)));
If you want August to display, use:
print(date("F", gmmktime(0, 0, 0, 8, 1, 0)));
Note: 1 can also be 2..31 :-)
Greetz,
Vincent Driessen
Venlo, The Netherlands