2016-07-19 40 views
0

Ich habe das aktuelle Datum identisch mit dem Format von ChatEventStartDate in meinem QuickBlox-Konto formatiert. Ich habe beides versucht, als ich mein Datum in eine Zeichenkette umwandelte und es als Datum beließ.Erstellen einer Abfrage, die Ereignisse zurückgibt, die nach der aktuellen Uhrzeit und Datum in Swift mit QuickBlox

query.setObject (RightNow, forKey: "chatEventBidEndTime [gt]")

gibt immer noch jedes Ereignis, nicht nur die, die später als die aktuelle Uhrzeit und das Datum zu starten.

Danke!

Antwort

1

Sie sollten nicht die String oder Date selbst verwenden, sondern das Zeitintervall seit dem 1. Januar 1970 (der Anfang der Unix Epoch). Sie können dieses Intervall von einem Datum wie diese:

let now = NSDate() 
let interval = now.timeIntervalSince1970 

und initialisieren Benutzer NSDate mit einem Intervall auf diese Weise:

let interval = 1000.0 
NSDate(timeIntervalSince1970: interval) 

Beachten Sie, dass die Art der interval ist Double, nicht Int. Ich bin mir nicht sicher, ob QuickBlox Double s unterstützt. Wenn dies nicht der Fall ist, können Sie es einfach in eine Int konvertieren. Sie verlieren jedoch die Genauigkeit der Subsekunden.

+0

Ich wollte dieses Problem verfolgen; Ich bin Kselvins Mitarbeiter, und zunächst konnte keiner von uns diese Antwort auf den Kopf stellen. Wie es funktioniert, kann QuickBlox nicht umgehen Vergleiche von entweder Strings oder Daten, abgesehen von gleich oder ungleich. Daher muss ein Datumsfeld durch eine Ganzzahl oder einen Gleitkommawert ersetzt werden, wenn eine Filterung vor oder nach einem Datum erforderlich ist. –

+0

@TimKokesh Nun, meine Antwort sollte funktionieren. Ein 'NSDate' ist unter dem Cover nur ein' Double' und was ich gezeigt habe ist, wie man das 'Double' bekommen kann. Es stellt nur die Anzahl der Sekunden dar, die seit 1970 vergangen sind. Wenn Sie also 2 Daten vergleichen möchten, können Sie einfach diese Zahl verwenden und es wird funktionieren. –