two dates difference: // 7:32:56 pm on May 10, 1965 list($date_1_yr, $date_1_mo, $date_1_dy, $date_1_hr, $date_1_mn, $date_1_sc)= array(1965, 5, 10, 19, 32, 56); // 4:29:11 am on November 20, 1962 list($date_2_yr, $date_2_mo, $date_2_dy, $date_2_hr, $date_2_mn, $date_2_sc)= array(1962, 11, 20, 4, 29, 11); $diff_date = gregoriantojd($date_1_mo, $date_1_dy, $date_1_yr) - gregoriantojd($date_2_mo, $date_2_dy, $date_2_yr); $diff_time = $date_1_hr * 3600 + $date_1_mn * 60 + $date_1_sc - $date_2_hr * 3600 - $date_2_mn * 60 - $date_2_sc; if ($diff_time < 0) { $diff_date--; $diff_time = 86400 - $diff_time; } $diff_weeks = floor($diff_date/7); $diff_date -= $diff_weeks * 7; $diff_hours = floor($diff_time/3600); $diff_time -= $diff_hours * 3600; $diff_minutes = floor($diff_time/60); $diff_time -= $diff_minutes * 60; print "The two dates have $diff_weeks weeks, $diff_date days, "; print "$diff_hours hours, $diff_minutes minutes, and $diff_time "; print "seconds between them."; The two dates have 128 weeks, 6 days, 15 hours, 3 minutes, and 45 seconds between them. permutations!: function pc_permute($items, $perms = array( )) { if (empty($items)) { print join(' ', $perms) . "\n"; } else { for ($i = count($items) - 1; $i >= 0; --$i) { $newitems = $items; $newperms = $perms; list($foo) = array_splice($newitems, $i, 1); array_unshift($newperms, $foo); pc_permute($newitems, $newperms); } } } you dont have to declare functions before you call them.. $car = new car; // buy new car ... unset($car); // car wreck