[pmwiki-users] Question about ftime?

sti at pooq.com sti at pooq.com
Sat Dec 29 17:38:36 CST 2007


christian.ridderstrom at gmail.com wrote:
> Is it correct that
>     {(ftime "%Y" "-")}
> should produce
>     2007
> 
> I'm actually looking for a way to extract the year from a page text 
> variable that could look like this:
> 
>     :Deceased: 2003-12-01 Stockholm
> 
> where the person died in 2003. Or like this
> 
>     :Deceased: -
> 
> where the person is still alive, or possibly like this
> 
>     :Deceased: ?
> 
> where it's unknown when the person died.
> 
> Ideas?
> 
ftime uses defaults whenever it doesn't recognize a parameter. For 
unrecognized dates it always uses the current time. One way to get the 
effect you want is to nest ftime within another markup expression. A 
quick look through the possibilities doesn't show any existing ones that 
quite do the job, so you may have to roll your own. What you want is 
something like this (note that I'm using the MarkupExprPlus recipe):

{(if (test isdate {$:Deceased}) (ftime "%Y" {$:Deceased}) {$:Deceased}))}

This would require you to define a new conditional called 'isdate' which 
would look something like this (note that I haven't tested it):

$Conditions['isdate'] = 'preg_match("/\d\d\d\d-\d\d-\d\d/",$condparm)';

This assumes, of course, that all valid dates are strict ISO. If you 
have other date formats, then isdate gets a lot more complex.



More information about the pmwiki-users mailing list