2012-05-30 9 views

risposta

8

1. analizzare la stringa Data

analizzare la stringa data. Ho fornito una piccola funzione che divide la parola che indica la data e la analizza. Ho aggiunto alcuni nomi più convenienti per le date, ma puoi aggiungerne altri se necessario, nota che converto in minuscolo! Utilizza XQuery date and time functions per calcolare la data di abbinamento.

declare function local:from-relative-date($string as xs:string) as xs:date { 
    switch (lower-case(substring-before($string, ","))) 
     case "today"    return current-date() 
     case "yesterday"   return current-date() - xs:dayTimeDuration('P1D') 
     case "day before yesterday" return current-date() - 2 * xs:dayTimeDuration('P1D')  
     case "tomorrow"    return current-date() + xs:dayTimeDuration('P1D')  
     case "day after tomorrow" return current-date() + 2 * xs:dayTimeDuration('P1D')  
     default      return error(xs:QName("XPTY0004"), "Unknown Date") 
}; 

2. Formato data

Ora utilizzare la funzione format-date(...) XQuery 3.0 (spero che il vostro motore di XQuery supporta, BaseX che ho usato per questo esempio non) per formattare la stringa della data, come ne avete bisogno :

format-date(local:from-relative-date("Yesterday, 22:13"), "[Y]-[M00]-[D00]") 

in caso contrario, si dovrà utilizzare year-from-date(...) e funzioni secondo per month e day, utilizzare alcuni formattazione dei numeri e concatenare te stesso.

+0

+1, Aww Sono cose come queste. Abbiamo davvero bisogno di convincere il posto in cui lavoro per aggiornare la nostra esistenza! – matchew

Problemi correlati