13. Invoeren en tonen van datum in Brocade
Auteur |
|
Aanmaak |
29 maart 2010 |
Oud BVV nr |
2097 |
13.1. Abstract
Dit document beschrijft hoe een datum kan worden behandeld in Brocade.
13.2. Invoeren en tonen van een tijdsaanduiding
Brocade laat geen varianten toe: de tijd wordt steeds getoond als: hh:mm[:ss]
en opgeslagen in de Brocade databank als een integer tussen in [0, 86400[
Hoewel er in diverse locales andere vormen bestaan (vb. 09:35 PM, 2135) worden deze niet geparametriseerd binnen Brocade: de tijd wordt steeds weergegeven als bijvoorbeeld 21:35
. Deze alternatieve vormen hebben immers heel wat problemen:
aanduiden van seconden is niet geparamteriseerd;
onduidelijkheid (en streekafhankelijkheid) of 12:25 moet worden voorgesteld als 12:25 AM of 00:25 PM;
weinig gebruikt: 2135 wordt bijvoorbeeld enkel gebruikt in een militaire context.
Voorbeelden:
53100 opgeslagen: 14:35 getoond (in hh:mm context)
53105 opgeslagen: 14:35:05 getoond (in hh:mm:ss context)
Note
De context
hh:mm
ofhh:mm:ss
moet expliciet worden aangegeven.Cijfers worden steeds aangevuld tot 2.
13.3. Opslag in de databank
In de databank wordt een datum steeds opgeslagen in +$H_","
formaat. Eventueel aangevuld met het aantal verstreken seconden.
Voorbeeld:
61814,: 2010-03-29 (ISO-format)
13.4. De registry waarde lc-date
Deze registry waarde bepaalt hoe een datum moet worden geïnterpreteerd en hoe deze moet worden getoond. Deze registry waarde wordt standaard op dd.mm.yyyy
gezet en geldt voor de ganse Brocade toepassing op de server.
Voorbeelden van geldige lc-date waarden
België |
dd.mm.yyyy |
---|---|
Frankrijk |
dd-mm-yyyy |
Duitsland |
d.m.yyyy |
Nederland |
dd-mm-yyyy |
Zuid-Afrika |
yyyy/mm/dd |
US |
mm/dd/yyyy |
13.5. Input door middel van de datepicker
Om de datepicker-widget te kunnen gebruiken moeten eerst en vooral een aantal m4
s in de header van het formulier gezet worden:
m4_jsEmbedFile(r4_brocade_js_home_url/jquery.js)
m4_embedjQueryUI
m4_embedDatepicker
De macro m4_documentElementInputDate($name, $value, $html, $pastemode, $dpid, $dptype, $dpsep, $helptopic)
installeert een inputveld dat met datepicker kan ingevuld worden.
$id
kan ingevuld worden met een identifier voor het datepickerobject, anders wordt een id berekend.als er slechts 1 onafhankelijk datumveld gewenst is, moeten geen
$dp
parameters ingevuld worden (tenzij$dpid
indien gewenst)m4_documentElementInputDate(FDdate,x4_varruntime(FDdate),size="5" maxlength="20",overwrite)
als er 2 met mekaar gerelateerde datumvelden gewenst zijn (van - tot), moet het juiste type (
from | until
) in de respectievelijke invulvelden ingevuld worden. De software gaat ervan uit dat het 'until' veld dat bij een 'from' veld hoort, het volgendem4_documentElementInputDate
veld in de DOM is en omgekeerd.m4_documentElementInputDate(FDfrom,x4_varruntime(FDfrom),size="5" maxlength="20",overwrite,dptype=from)
m4_documentElementInputDate(FDuntil,x4_varruntime(FDuntil),size="5" maxlength="20",overwrite,dptype=until)
als er een invulveld gewenst is waarin meerdere datums naast mekaar met datepicker kunnen ingevuld worden moet
dptype=multi
ingevuld worden, evenalsdpsep
indien een andere separator gewenst dan de default ";".m4_documentElementInputDate(FDdate,x4_varruntime(FDdate),size="5" maxlength="20",overwrite,dptype=multi,bb-ti)
13.6. Input van een datum door eindgebruikers
In een web-interface dient steeds de datepicker te worden gebruikt met readonly attribuut. Niet alleen geeft dit een mooie interface, maar dit voorkomt dat er foutieve of niet te interpreteren gegevens naar de server worden gestuurd.
De macro die wordt gebruikt om een ingevoerde datum te parsen is: m4_parseDate($hdate, $input)
.
13.7. Input door personeel
In een web-interface dient steeds de datepicker te worden gebruikt zonder readonly attribuut.
|
YYYYMMDD |
|
maand en jaar worden aangevuld uit de datum van vandaag |
|
MMDD jaar worden aangevuld uit de datum van vandaag |
|
wordt geïnterpreteerd op basis van |
|
wordt geïnterpreteerd op basis van |
|
de datum van vandaag |
|
de datum van vandaag + aantal dagen |
|
de datum van vandaag - aantal dagen |
De macro die wordt gebruikt om een ingevoerde datum te parsen is: m4_parseDate($hdate, $input)
Voorbeelden met als datum van vandaag: 28 maart 2010 (= 61813,)
Input |
hdate |
---|---|
20100329 |
61814, |
0329 |
61814, |
20 |
61805, |
20 jul 2010 |
61927, |
jul 20 2010 |
61927, |
2010 jul 20 |
61927, |
2010 20 jul |
61927, |
= |
61813, |
0 |
61813, |
61813, |
|
T |
61813, |
V |
61813, |
+1 |
61814, |
-1 |
61812, |
Voorbeelden met als datum van vandaag: 28 maart 2010 (= 61813,) en r4_lc_date = dd.mm.yyyy *)
Input |
hdate |
---|---|
29 03 |
61814, |
29 03 2010 |
61814, |
29 2010 03 |
61814, |
2010 29 03 |
61814, |
29 03 10 |
61814, |
29 03 0 |
61814, |
29 03 010 |
61814, |
13.8. Display van een datum
De macro die wordt gebruikt om een datum in $H
formaat te tonen is: m4_displayDate($display, $hdate, $level="", $lg="")
$level
kan "", h, m, s
zijn en biedt de mogelijkheid om ook een tijdsaanduiding te specificeren.
Voorbeelden met r4_lc_date = dd.mm.yyyy
hdate |
level |
display |
macro |
---|---|---|---|
61814, |
29.03.2010 |
|
|
61814, |
h |
29.03.2010 |
|
61814, |
m |
29.03.2010 |
|
61814, |
s |
29.03.2010 |
|
61814,21345 |
29.03.2010 |
|
|
61814,21345 |
h |
29.03.2010 05 |
|
61814,21345 |
m |
29.03.2010 05:55 |
|
61814,21345 |
s |
29.03.2010 05:55:45 |
|
13.9. Opmerkingen voor ontwikkelaars
Bij het berekenen van een $H
gebruiken ontwikkelaars regelmatig de volgende constructie: m4_getDateConversion(hdate, "01/03/"_year, "<H>")
. Beter is de lokale onafhankelijke constructie: m4_getDateConversion(hdate, year_"0301", "<H>")
of m4\_parseDate(hdate, year\_"0301")