snipplrCallback({"id":27971,"title":"gettimediff","source":"
function<\/span> getTimeDiff(<\/span>$timestamp<\/span>=<\/span>false<\/span>)<\/span> {<\/span><\/div><\/li> <\/div><\/li> \t$current_time<\/span> =<\/span> time<\/span><\/a>(<\/span>)<\/span>;<\/span><\/div><\/li> <\/div><\/li> \tif<\/span> (<\/span>$timestamp<\/span>)<\/span> {<\/span><\/div><\/li> <\/div><\/li> \t\t\/\/ Determine the difference, between the time now and the timestamp<\/span><\/div><\/li> \t\t$difference<\/span> =<\/span> $current_time<\/span> -<\/span> $timestamp<\/span>;<\/span><\/div><\/li> <\/div><\/li> \t\t\/\/ Set the periods of time<\/span><\/div><\/li> \t\t$periods<\/span> =<\/span> array<\/span><\/a>(<\/span>"second"<\/span>,<\/span> "minute"<\/span>,<\/span> "hour"<\/span>,<\/span> "day"<\/span>,<\/span> "week"<\/span>,<\/span> "month"<\/span>,<\/span> "year"<\/span>,<\/span> "decade"<\/span>)<\/span>;<\/span><\/div><\/li> \t\t$lengths<\/span> =<\/span> array<\/span><\/a>(<\/span>1<\/span>,<\/span> 60<\/span>,<\/span> 3600<\/span>,<\/span> 86400<\/span>,<\/span> 604800<\/span>,<\/span> 2630880<\/span>,<\/span> 31570560<\/span>,<\/span> 315705600<\/span>)<\/span>;<\/span><\/div><\/li> <\/div><\/li> \t\t\/\/ Determine which period we should use, based on the number of seconds lapsed.<\/span><\/div><\/li> \t\t\/\/ If the difference divided by the seconds is more than 1, we use that.<\/span><\/div><\/li> \t \t\/\/ Go from decades backwards to seconds <\/span><\/div><\/li> \t\tfor<\/span> (<\/span><\/div><\/li> \t\t\t$val<\/span> =<\/span> sizeof<\/span><\/a>(<\/span>$lengths<\/span>)<\/span> -<\/span> 1<\/span>;<\/span> <\/div><\/li> \t\t\t(<\/span>$val<\/span> &<\/span>gt;=<\/span> 0<\/span>)<\/span> &<\/span>amp;&<\/span>amp;<\/span> (<\/span>(<\/span>$number<\/span> =<\/span> $difference<\/span> \/<\/span> $lengths<\/span>[<\/span>$val<\/span>]<\/span>)<\/span> &<\/span>lt;=<\/span> 1<\/span>)<\/span>;<\/span><\/div><\/li> \t\t\t$val<\/span>--<\/span><\/div><\/li> \t\t)<\/span>;<\/span><\/div><\/li> <\/div><\/li> \t\t\/\/ Ensure the script has found a match<\/span><\/div><\/li> \t\tif<\/span> (<\/span>$val<\/span> &<\/span>lt;<\/span> 0<\/span>)<\/span> $val<\/span> =<\/span> 0<\/span>;<\/span><\/div><\/li> <\/div><\/li> \t\t\/\/ Determine the minor value, to recurse through<\/span><\/div><\/li> \t\t$new_time<\/span> =<\/span> $current_time<\/span> -<\/span> (<\/span>$difference<\/span> %<\/span> $lengths<\/span>[<\/span>$val<\/span>]<\/span>)<\/span>;<\/span><\/div><\/li> <\/div><\/li> \t\t\/\/ Set the current value to be floored<\/span><\/div><\/li>