Just to clarify the differences between the different methods to convert a date to a timestamp.
Suppose:
<?php
$x = JDToUnix(GregorianToJD(9,23,2006));
$y = strtotime('2006-09-23');
$z = (GregorianToJD(9,23,2006) - 2440587.5) * 86400;
?>
Then, on a machine whoze timezone is GMT-0400, we get the following results:
<?php
$x === 1158969600;
$y === 1158984000; // $x + 4 hours
$z === 1159012800; // $x + 12 hours
?>