Genesis730 Posted May 27, 2011 Share Posted May 27, 2011 I have this script that takes a UNIX timestamp and determines how long it will be or has been since the timestamp... I was hoping somebody could help me modify it to also show the current array plus the one before it... so if there's 1 week, it'll show x days or if theres 1 month it'll show x weeks, etc... to get a more accurate reading. Here is the script... <?php function timeSince($timestamp) { $chunks = array( array(60 * 60 * 24 * 365 , 'year'), array(60 * 60 * 24 * 30 , 'month'), array(60 * 60 * 24 * 7, 'week'), array(60 * 60 * 24 , 'day'), array(60 * 60 , 'hour'), array(60 , 'minute'), array(1, 'second') ); $since = time() - $timestamp; for ($i = 0, $j = count($chunks); $i < $j; $i++) { $seconds = $chunks[$i][0]; $name = $chunks[$i][1]; if(($count = floor($since / $seconds)) != 0) break; } $printtime = ($count == 1) ? "1 {$name}" : "$count {$name}s"; return $printtime . " ago"; } function timeUntil($timestamp) { $chunks = array( array(60 * 60 * 24 * 365 , 'year'), array(60 * 60 * 24 * 30 , 'month'), array(60 * 60 * 24 * 7, 'week'), array(60 * 60 * 24 , 'day'), array(60 * 60 , 'hour'), array(60 , 'minute'), array(1, 'second') ); $until = $timestamp - time(); for ($i = 0, $j = count($chunks); $i < $j; $i++) { $seconds = $chunks[$i][0]; $name = $chunks[$i][1]; if(($count = floor($until / $seconds)) != 0) break; } if($count < 0) return "Expired ".timeSince($original); $printtime = ($count == 1) ? "1 {$name}" : "$count {$name}s"; return $printtime; } ?> Link to comment https://forums.phpfreaks.com/topic/237678-modify-script/ Share on other sites More sharing options...
QuickOldCar Posted June 28, 2011 Share Posted June 28, 2011 <?php //implement leap year function function isleapyear($year = '') { if (empty($year)) { $year = date('Y'); } $year = (int) $year; if ($year % 4 == 0) { if ($year % 100 == 0) { return ($year % 400 == 0); } else { return true; } } else { return false; } } function date_diff($date, $date2 = 0) { if(!$date2) $date2 = mktime(); $date_diff = array('seconds' => '', 'minutes' => '', 'hours' => '', 'days' => '', 'weeks' => '', 'years' => '', 'tseconds' => '', 'tminutes' => '', 'thours' => '', 'tdays' => '', 'tweeks' => '', 'tyears' => ''); if($date2 > $date) $tmp = $date2 - $date; else $tmp = $date - $date2; $seconds = $tmp; $date_diff['years'] = floor($tmp/31556926); $tmp -= $date_diff['years'] * 31556926; $date_diff['weeks'] = floor($tmp/604800); $tmp -= $date_diff['weeks'] * 604800; $date_diff['days'] = floor($tmp/86400); $tmp -= $date_diff['days'] * 86400; $date_diff['hours'] = floor($tmp/3600); $tmp -= $date_diff['hours'] * 3600; $date_diff['minutes'] = floor($tmp/60); $tmp -= $date_diff['minutes'] * 60; $date_diff['seconds'] = $tmp; $date_diff['tyears'] = floor($seconds/31556926); $date_diff['tweeks'] = floor($seconds/604800); $date_diff['tdays'] = floor($seconds/86400); $date_diff['thours'] = floor($seconds/3600); $date_diff['tminutes'] = floor($seconds/60); $date_diff['tseconds'] = $seconds; return $date_diff; } $time1_value = "now";//change this $time2_value = "next Saturday";//change this $time1 = strtotime($time1_value); $time2 = strtotime($time2_value); $diff = date_diff($time1, $time2); echo "Time between <b>$time1_value</b> and <b>$time2_value</b><br />"; echo "Years: " .$diff['years']. "<br />"; echo "Weeks: " .$diff['weeks']. "<br />"; echo "Days: " .$diff['days']. "<br />"; echo "Hours: " .$diff['hours']. "<br />"; echo "Minutes: " .$diff['minutes']. "<br />"; echo "Seconds: " .$diff['seconds']. "<br />"; ?> Link to comment https://forums.phpfreaks.com/topic/237678-modify-script/#findComment-1235775 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.