Ok, you simply need to use a consistant data source for everything. Since I have recommended that you use a timestamp to store your data, you will need to update the posts as well.
Best function for that would be strtotime(). This will allow you to pass your formatted date in and return a timestamp.
Now, this could give you a problem, it has specified guidlines to follow, and unfortunatly I'm not 100% certain as to how it operates when it parses. However, you can simply check this by running a script to compare the output before you look at updating:
The formatting should match your original, all this script does is take the current, attempt to parse the format into a timestamp, format the new timestamp back into its original format and compare them. As my comment mentions, I'm not 100% certain if the === operator will work with strings, so you may want to simply output the original format with the new format to visually compare them instead. As well, depending on your php version, $newDateFormatted could be a null value, which will throw you some errors.
// I will assume that the value $newsDate has been queried already
$newDate = strtotime($newsDate);
// d M Y should be replaced with the format used by your $newsDate
$newDateFormatted = date('d M Y', $newDate);
// ugh, I'm used to java so without a compareto I will attempt an exact equals instead:
if ($newDateFormatted === $newsDate)
echo "The date is correctly formatted\n";
echo "The date is not correctly formatted\n";
If it appears to work correctly, you can use the same concept to write the timestamp and update your database.
Let me know if you've got any troubles.