Very strange. But found a fix. Testing on my local setup running PHP 5.5, it seems that the comma is what is causing the issue. So stripping out commas from the entered data produces the desired results with your test code:
// Set the test data.
$test_data = '23 January, 2014';
// Filter out commas from the '$test_data'
$test_data = preg_replace('/,/', '', $test_data);
// Get the Unix datetime from the test data.
$date = strtotime($test_data);
// Format the Unix datetime.
$dateFormat = date('l: F d, Y', $date);
// Output for debugging.
echo 'date: ' . $date . '<br />';
echo 'dateFormat: ' . $dateFormat . '<br />';
The output I get is:
date: 1390453200
dateFormat: Thursday: January 23, 2014