Maybe it should work like this. Cause I'd hate it like that. I hope I did the below correctly. I used $int not $round, for the reason that we shouldn't round up since it's not actually that duration yet.

$duration(192891822) would return 318wks 6days 13hrs 3mins 42secs

$duration(192891822,2) would return 318wks 6days 13hrs 3mins

$duration(192891822,3) would return 2232days 13hrs 3mins 42secs

$duration(192891822,4) would return 2232days 13hrs 3mins

$duration(192891822,5) would return 6yrs 5wks 6days 2hrs 11mins 10secs

$duration(192891822,6) would return 6yrs 5wks 6days 2hrs 11mins

----
Some of my work I used below.
//echo -s $duration(192891822) $duration($int($calc((192891822/(365.24219*60*60*24) - 6) * (365.24219*60*60*24))))
----
I'd like it with solar years, since no matter how long it is, it will eventually end up going off to solar years.