Something else to consider.
Is your DB field actually a datetime field?
The string format for dates is completely disassociated from the database internal representation. It's likely not so much rearranging the date as implicitly converting it to the date/time format that was set up as default for the database.
It just happens that "1/4/2014" is both a valid UK and US format so without explicit conversion the date stores using the DB default. "31/4/2014" would likely cause an error.
Just a thought