so the issue now not that it is not passing validation, but what is being stored in the database, right?
in the update behavior, the code has to reformat the date to be compatible with MySQL. it uses the date and strtotime function refomat the date to yyyy-mm-dd H:i:s format:
date("Y-m-d H:i:s", strtotime($_POST["session_date_start"]))
the problem with this is that the strtotime function uses the separator to determine if the data uses the US Format or the UK format. From the php web site:
Dates in the m/d/y or d-m-y formats are disambiguated by looking at the separator between the various components: if the separator is a slash (/), then the American m/d/y is assumed; whereas if the separator is a dash (-) or a dot (.), then the European d-m-y format is assumed.
When the separator uses a slash, strtotime assumes the US m/d/y format, but you are passing it as d/m/y
one of 2 way to fix it:
1) Use the dash separator instead
2) add code at line one of your page to convert the slash to a dash
<?php if(isset($_POST["session_date_start"])) $_POST["session_date_start"] = str_replace("/","-",$_POST["session_date_start"]); ?>