New WEEK_DATE macro
This commit is contained in:
parent
e4faacae82
commit
4c4d1af1a5
|
@ -31,6 +31,52 @@ function macro_INTERVAL($proc, $spec)
|
|||
return $sec;
|
||||
}
|
||||
|
||||
/**
|
||||
* @global
|
||||
*/
|
||||
function macro_WEEK_DATE($proc, $spec)
|
||||
{
|
||||
$parts = explode(" ", $spec);
|
||||
$dow_str = $parts[0];
|
||||
$time_str = $parts[1];
|
||||
|
||||
$day = 0;
|
||||
switch ($dow_str) {
|
||||
case 'MONDAY':
|
||||
$day = 0;
|
||||
break;
|
||||
case 'TUESDAY':
|
||||
$day = 1;
|
||||
break;
|
||||
case 'WEDNESDAY':
|
||||
$day = 2;
|
||||
break;
|
||||
case 'THURSDAY':
|
||||
$day = 3;
|
||||
break;
|
||||
case 'FRIDAY':
|
||||
$day = 4;
|
||||
break;
|
||||
case 'SATURDAY':
|
||||
$day = 5;
|
||||
break;
|
||||
case 'SUNDAY':
|
||||
$day = 6;
|
||||
break;
|
||||
default:
|
||||
throw new Exception("Bad day of week: $spec");
|
||||
break;
|
||||
}
|
||||
|
||||
$stamp = strtotime($time_str);
|
||||
if($stamp === false)
|
||||
throw new Exception("Bad time: $spec");
|
||||
|
||||
$stamp += $day * 24 * 60 * 60;
|
||||
|
||||
return $stamp;
|
||||
}
|
||||
|
||||
/**
|
||||
* @global
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue