Strtotime() returns different results on the same input!

Strtotime() is supposed to take an English phrase of some time and convert it into a Unix timestamp. In this code, I grab a time from some website, clean any HTML entities from the time, and then pass it to strtotime(). It returns the empty string, meaning that it failed. However, if I just copy and paste the cleaned string into strtotime(), it returns correctly! What’s going on?


$html = file_get_contents('http://groups.google.com/group/alt.politics.usa/browse_thread/thread/419b783eccd25a13#');

preg_match_all('/<span class="fontsize0">&nbsp;<span class="(?:.*?)" id="oh_l">More options<\/span><\/span>
  <span class="fontsize2">
  (.*?)
/', $html, $result);

echo '$result[1][0] = ' . $result[1][0];
echo '<br />';
echo 'html_entity_decode($result[1][0]) = ' . html_entity_decode($result[1][0]); 
echo '<br />';
echo 'strtotime(html_entity_decode($result[1][0])) = ' . strtotime(html_entity_decode($result[1][0]));
echo '<br />';
echo 'strtotime("Apr 10, 8:19 am") = ' . strtotime("Apr 10, 8:19 am");

output:


**$result[1][0]** = Apr 10, 8:19&nbsp;am
**html_entity_decode($result[1][0])** = Apr 10, 8:19 am
**strtotime(html_entity_decode($result[1][0]))** =
**strtotime("Apr 10, 8:19 am")** = 1239369540