This is quite a common problem 😉 PHP's date function requires a timestamp, not a mysql formatted date/datetime field. There are a few ways to do what you want here. The best one would be to format it directly from your database (that is if you're getting the date from your db). Use the mysql DATE_FORMAT() function for this. eg:
$sql = "SELECT DATE_FORMAT('%W, %M %e, %Y', date) AS date FROM table";
For today, that will return the date as "Tuesday, April 29, 2003"
The next way you could do it is to get a timestamp from the db. use the UNIX_TIMESTAMP() function for this.
$sql = "SELECT UNIX_TIMESTAMP(date) AS date FROM table";
echo date("l, F j Y", $result['date']);
That one's pretty self explanatory 😉
Finally, you can use the strtotime, if that's all that's left for you. If you HAVE to get your date out of your db in the format Y-m-d, then you can use strtotime to create a timestamp.
In your case you would use this:
$printdate = date("l, F j Y", strtotime($row["postdate"]));
echo $printdate;
Hope that helps!
Matt