Hello I want to known how old some documents are... so until now i have - my current date , ex: 26-10-2007 and the date when documents were created ex , 11-10-2007, or 1-12-2005,6-6-2006, Is there any way to quickly display the age of the documents?! as $age=$today-$creation_date ?!
This should do the trick: time() - filectime($file) Code (markup): Filectime() only works on Windows, though. From what I understand, most filesystems don't save file creation date.
Sorry , you didn't got my question ... my problem it's how to get the days, months and years... not the file creation date... I got all the items dates in a database... now.. if i do something like <?php $today='4-2-2007'; $yesterday='1-1-2006'; $write=date($today-$yesterday); echo $write; ?> it will out 3 , so it's not calculating the days, motnhs,etc... And i want it to report back "1 year, 1 month and 3 days!"
I wrote this function a while ago, which will help here. It compares two timestamps and returns the difference like you want it. function calc_date_diff($timestamp_past = false, $timestamp_future = false, $years = true, $months = true, $days = true, $hours = true, $mins = true, $secs = true) { // Use current time if parameter is FALSE. if (!$timestamp_past) $timestamp_past = time(); if (!$timestamp_future) $timestamp_future = time(); // Attempt to convert strings to timestamp if necessary. $timestamp_future = is_string($timestamp_future) ? strtotime($timestamp_future) : intval($timestamp_future); $timestamp_past = is_string($timestamp_past) ? strtotime($timestamp_past) : intval($timestamp_past); $diff = $timestamp_future - $timestamp_past; $calc_times = array(); $timeleft = array(); // Prepare array, depending on the output we want to get. if ($years) $calc_times[] = array('Year', 'Years', 31104000); if ($months) $calc_times[] = array('Month', 'Months', 2592000); if ($days) $calc_times[] = array('Day', 'Days', 86400); if ($hours) $calc_times[] = array('Hour', 'Hours', 3600); if ($mins) $calc_times[] = array('Minute', 'Minutes', 60); if ($secs) $calc_times[] = array('Second', 'Seconds', 1); foreach ($calc_times AS $timedata) { list($time_sing, $time_plur, $offset) = $timedata; if ($diff >= $offset) { $left = floor($diff / $offset); $diff -= ($left * $offset); $timeleft[] = "{$left} ". ($left == 1 ? $time_sing : $time_plur); } } return $timeleft ? ($timestamp_future > $timestamp_past ? null : '-') . implode(', ', $timeleft) : 0; } PHP: Usage example: $age = calc_date_diff(filectime('file.zip')); // Returns (Eg): 7 Months, 6 Days, 11 Hours, 56 Minutes, 29 Seconds echo $age; PHP: