Jump to content
  • 0

Datum naar Y-M-D


mouwen

Question

Posted

Beste mede Filemakers,

 

Ik had een vraagje betreffende de Get(HuidigeDatum). Deze functie geeft ten alle tijden de uitkomst DD/MM/YYYY. Ikzelf heb wel de huidige datum nodig maar dan op de volgende manier als uitkomst YYYY/MM/DD. Ik heb al veel gepropeerd door met substitute de streepjes er tussenuit te halen en daarbij dan de functie met left en right uit elkaar te trekken. Dit werkt echter niet naar behoren. Het is namelijk zo dat als de dag of een maand maar 1 cijferig is dus bijvoorbeeld 6 maart dan neemt het programma het op als 6-3-2014. Hier zou dus moeten komen te staan 2014-03-06. Dit heb ik nodig om automatisch de datum achter mijn foto's te plaatsen zodat ze gemakkelijk te filteren zijn. Hierbij verwijder ik dan de streepjes met substitute zodat er 20140306 zou moeten komen te staan.

 

Alvast heel veel dank,

Mouwen

15 answers to this question

Recommended Posts

  • 0
Posted

Met de volgende custom functie met de parameters p_timestamp en p_format zet je iedere datum en/of tijd naar ieder gewenst formaat:

 

============================================================================

 

/*

input: ts_format( get(currenttimestamp) ; "YMDHNS")

ouput: "20120321143103"

input: ts_format( get(currenttimestamp) ; "d-m-y")

ouput: "3-3-2012"

 

Let(

[ tim = Case( p_timestamp>""; p_timestamp ; Get(CurrentTimeStamp) )

; d = Day( tim )

; dd = Right( "0" & d ; 2 )

; m = Month( tim )

; mm = Right( "0" & m ; 2 )

; h = Hour( tim )

; hh = Right( "0" & h ; 2 )

; n = Minute( tim )

; nn = Right( "0" & n ; 2 )

; s = Seconds( tim )

; ss = Right( "0" & s ; 2 )

; yy = Year( tim )

; y = Right( yy ; 2 )

 

] ;

 

Substitute( p_format

; [ "y" ; y ]

; [ "Y" ; yy ]

; [ "m" ; m ]

; [ "M" ; mm ]

; [ "d" ; d ]

; [ "D" ; dd ]

; [ "h" ; h ]

; [ "H" ; hh ]

; [ "n" ; n ]

; [ "N" ; nn ]

; [ "s" ; s ]

; [ "S" ; ss ]

 

)

 

)

  • 0
Posted

Het is onafhankelijk van het datumformaat van filemaker/systeem.

 

Stel je noemt de custom function 'date_format' dan wordt:

 

date_format( "" ; "YMD" ) => "20140327"

 

date_format( "" ; "D-M-Y" ) => "27-03-2014"

 

date_format( get(currentdate) -20 ; "d-m-y" ) => "7-3-14" etc.

  • 0
Posted

Beste Jos,

 

Ik bedoel hoofdzakelijk de hulp bij het verwerken van jou gegevens tot een Eigen functie. Want de manier van werking van de functie is te begrijpen. Echter kom ik er niet helemaal uit hoe ik de code toe kan voegen tot mijn eigen functies en waar ik wat precies moet kopieren en moet plakken.

 

Alvast bedankt en sorry voor het ongemak,

 

Mouwen

  • 0
Posted

Om een custom functie te kunnen maken heb je FM Advanced nodig.

Als je die niet hebt gaat het niet lukken.

Dan zul je een 'gewoon' berekend veld moeten aanmaken waarin je deze code opneemt.

 

rmw

  • 0
Posted

Ik heb Filemaker Pro Advanced, dus daar kan het niet aan liggen. Weet alleen niet de stappen en de plaatsen waar ik de codering moet invoeren. Dat is het probleem. Vandaar ook de vraag of iemand mij daarbij wou helpen.

 

In iedergeval al bedankt voor het meedenken en het ondersteunen.

 

Met vriendelijke groet,

Mouwen

  • 0
Posted

Beste mede filemakers,

 

Momenteel heb ik deze onderdelen ingevuld

 

Naam: Datum_nieuw

Parameters:

p_timestamp

p_format

 

Het berekeningsveld:

/*

input: ts_format( get(HuidigeTijdstempel) ; "YMDHNS")

ouput: "20120321143103"

input: ts_format( get(HuidigeTijdstempel) ; "d-m-y")

ouput: "3-3-2012"

*/

Let(

 

[ tim = Case( p_timestamp>""; p_timestamp ; Get(HuidigeTijdstempel) )

; d = Day( tim )

; dd = Right( "0" & d ; 2 )

; m = Month( tim )

; mm = Right( "0" & m ; 2 )

; h = Hour( tim )

; hh = Right( "0" & h ; 2 )

; n = Minute( tim )

; nn = Right( "0" & n ; 2 )

; s = Seconds( tim )

; ss = Right( "0" & s ; 2 )

; yy = Year( tim )

; y = Right( yy ; 2 )

] ;

 

Substitute( p_format

; [ "y" ; y ]

; [ "Y" ; yy ]

; [ "m" ; m ]

; [ "M" ; mm ]

; [ "d" ; d ]

; [ "D" ; dd ]

; [ "h" ; h ]

; [ "H" ; hh ]

; [ "n" ; n ]

; [ "N" ; nn ]

; [ "s" ; s ]

; [ "S" ; ss ]

))

 

Dit zijn de ingevulde gegevens. Ik heb hiervoor dus 1 nieuwe functie aangemaakt. Daarbij is nu de vraag wat doe ik fout en hoe kan ik de functie nou toepassen.

 

Alvast veel dank en sorry voor het ongemak,

Met vriendelijke groet,

Mouwen

  • 0
Posted

Beste Mede Filemakers,

 

De functie heb ik ingevoerd zoals hierboven staat aangegeven. Echter weet ik niet hoe ik hem nu kan doorvoeren zodat ik als uitkomst YYYY/MM/DD krijg. Kan iemand mij dit uitleggen. Dus wat ik nu in een berekeningsveld in moet voeren om de huidige datum in die volgorde weer kan geven. Zodat hij dus de huidige datum van die dag ophaald.

 

Met vriendelijke groet,

Mouwen

  • 0
Posted

ts_format ( <> ; "Y/M/D")

 

Experimenteer met:

 

ts_format ( Get ( CurrentTimestamp ) ; "Y" )

ts_format ( Get ( CurrentTimestamp ) ; "y" )

ts_format ( Get ( CurrentTimestamp ) ; "22-M-y" )

ts_format ( Get ( CurrentTimestamp ) ; "Yes" )

ts_format ( Get ( CurrentTimestamp ) ; "d-D" )

ts_format ( Get ( CurrentTimestamp ) ; "abcdefg" )

 

en leer zo wat die letters opleveren

  • 0
Posted

Beste Filemakers,

 

Ondanks de verwarring van mijn kant is door het voorbeeld bij mij een heel groot deel duidelijk geworden en is het me gelukt om de functie toe te passen.

 

Heel veel dank,

Mouwen

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...