--- /dev/null
+<?php
+if (empty($Args)) {
+ return;
+}
+@list ($target, $interval) = explode('+', ltrim($Args, '/'));
+$target = new DateTime($target);
+$now = new DateTime('NOW');
+$next = $target->diff($now); # age
+
+if ($interval) {
+ # recurring
+ $interval = new DateInterval('P'.$interval);
+ for ($attempt = 0; $attempt < 500; $attempt++) {
+ if ($next->invert) {
+ break; # past or today
+ }
+ $target->add($interval);
+ $next = $target->diff($now);
+ }
+}
+$next = $target->setTime(0, 0)->diff($now); # truncate to midnight
+$eta = $next->invert ? $next->days + 1 : -$next->days;
+
+if ($eta == 0) {
+ print 'vandaag';
+}
+elseif ($eta == 1) {
+ print 'morgen';
+}
+elseif ($eta == 2) {
+ print 'overmorgen';
+}
+elseif ($eta == -1) {
+ print 'gisteren';
+}
+elseif ($eta < 0) {
+ printf('%d dagen geleden', -$eta);
+}
+else {
+ printf('over %d dagen', $eta);
+}
+
+if ($interval) {
+ print ', ' . showdate(explode('-', $target->format('Y-m-d')));
+}