2

Ich möchte eine zufällige Zeit zwischen 1-30 Minuten zu einem Datum hinzufügen, aber ColdFusion scheint es nicht zu mögen. Es fügt dem Wert Now() die gleiche Anzahl von Minuten hinzu, egal wie oft ich den folgenden Code ausführe. Ich kann nicht herausfinden warum.Zufällige Zeit zu DateTime Wert hinzufügen

<cfset DateFuture = DateTimeFormat(DateAdd('n', RandRange(1, 30), Now()), 'yyyy-mm-dd HH:mm:ss.l')/> 
<cfoutput>#DateFuture#</cfoutput> 

Ich brauche die yyyy-mm-dd HH:mm:ss.l Datetimeformat, weil das, was in SQL Server meine Datums- und Uhrzeitwerte aussehen wie das ist, wo ich meine Zukunft Datum einfügen möchten.

Wenn ich den obigen Code ausführen ich erhalte diese Ausgabe:

2017-11-25 22:11:24 und dann plötzlich wird es 2017.11.25 21 ändern: 11:16 was eine ganze Stunde wegnimmt, wenn ich nur noch Zeit hinzufügen möchte!

Es macht keinen Sinn, warum es sich so verhält. Ich bin in Großbritannien, verwende aber das internationale Datumsformat im Standardformat von SQL Server, das wie oben beschrieben ist.

UPDATE: Es ist ein Tippfehler! Das DateTimeFormat sollte yyyy-mm-dd HH:nn:ss.l sein. 'nn' ist Minuten, nicht 'mm'. Oh!

+1

Ich wäre versucht, Datum und Uhrzeit von SQL Server zu verwenden. SQL 2016 hat eine viel robustere Reihe von Funktionen. Es gibt UDFs, die SQL 2014 dazu bringen, alle möglichen Dinge zu tun. –

+1

Vielleicht aber sicher ColdFusion Funktionen sollen wie beworben arbeiten? –

+0

Es ist ein dummer Tippfehler. Ich habe HH: mm: ss verwendet, wenn es HH hätte sein sollen: nn: ss –

Antwort

1

Das ganze Problem war bis auf einen Tippfehler. Es sollte HH:nn:ss sein. Beachten Sie die nn und nicht mm für Minuten.

3

Wenn Sie die Minuten verwenden, gibt der Bereich von 1 bis 30 nicht viele Werte an.

Sie werden es etwas zufälliger machen mit seconds [600 bis 1800] oder miliseconds [600000 bis 1800000].

<cfset miliSeconds = RandRange(600000, 1800000) /> 
<cfdump var="#miliSeconds#" /> 

<cfset DateFuture = DateTimeFormat(DateAdd('l', miliSeconds, now()), 'yyyy-mm-dd HH:nn:ss.l')/> 
<cfdump var="#DateFuture#" /> 


Run-Code: https://trycf.com/gist/f26ff8edbe1736e453ded06d5adf5076/lucee5?theme=monokai

+0

Das ganze Problem war auf einen Tippfehler zurückzuführen. Es sollte HH: nn: ss sein. Beachten Sie die 'nn' und nicht 'mm' für Minuten. –