From Scriptwiki
Jump to: navigation, search

Converts an interval (unit: seconds) in to a human-readable format. It is also capable of converting the human readable format in to total number of seconds elapsed since 00:00:00 GMT, January 1, 1970.

Note: When converting from human readable to numerical $duration will treat 1wk, 1w, 1week and 1 week as the same value. It is also worth noting that months and years do not have a set valid so can not be converted.

$duration(interval, N)
  • N is an optional parameter which specifies how $duration formats the time:
N Meaning
2 do not include seconds in the result
3 return in the H:m:s format


$duration(3665)  ;returns 1hr 1min 5secs
$duration(3665,2)  ;returns 1hr 1min
$duration(3665,3)  ;returns 01:01:05

Time since a specific date

echo -a $duration($calc($ctime - $ctime(10.02.1986 00:00)))

This command echos how much time has passed since the 10th February 1986.

Reverting human readable text into an integer we can use to calculate

var %when = 1wk 3days 19hrs 41mins 15secs
var %ts = $duration(%when)  ;This will give us the amount of seconds (934875) that is in %when
var %ts = $calc($ctime + %ts)  ;Add $ctime (the current time in seconds) to the varible.
echo -a The date and time in %when will be $asctime(%ts)