Code for UK / EU formats
If your form or datepicker uses UK / EU format date, then 4th February is returned as 2nd April.
Fix this by putting this code at the very top of your page:
<?php if(isset($_POST["mydate"])) $_POST["mydate"] = str_replace("/","-",$_POST["mydate"]); ?>
(change 'mydate' to the name in your form)
See this post for explanation: How to format DatePicker date to dd/mm/yyyy...
Thanks to everyone who pointed me in the right direction.