2 unixzeiten vergleichen ob sie den selbigen Tag haben

Begonnen von CoolTux, 15 September 2018, 07:50:21

Vorheriges Thema - Nächstes Thema

CoolTux

Hallo,

Ich habe echte Probleme damit 2 unixzeiten zu überprüfen ob beide auf den selben Tag fallen.
Meine einzige Idee ist mit 0 an zu fangen, also 01.01.1970 00:00:00 und dann immer einen Tag zu ermitteln mit 1+86400. Also 1Tag = 8640 zweiter Tag dann 8640*2 und so weiter. Was denkt ihr, kann das so gehen?
Gibt es da nichts einfacheres?



Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Dr. Boris Neubert

Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux


my $time1 = int(1536992634/86400);
my $time2 = int(1537048801/86400);



print $time1 . ' und ' . $time2 . "\n";


Sollte mir ja eigentlich helfen können. Macht es aber nicht. time1 ist aktuell 15.09.2018 - 08:23:54 und time2 16.09.2018 - 00:00:01 also ein nächster tag. Dennoch ergibt die Rechnung 17789 und 17789
Also selber Tag.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Dr. Boris Neubert

Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Dr. Boris Neubert

Zitat von: CoolTux am 15 September 2018, 08:30:15
Sollte mir ja eigentlich helfen können. Macht es aber nicht. time1 ist aktuell 15.09.2018 - 08:23:54 und time2 16.09.2018 - 00:00:01 also ein nächster tag. Dennoch ergibt die Rechnung 17789 und 17789
Also selber Tag.

Zeitzonenproblem? Unix-Zeit sind Sekunden seit der Epoche in UTC.
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

CoolTux

ich nehme mir erstmal nur die Zeiten von hier

https://www.unixtime.de/

Scheint aber in der Tat so zu sein. Dann muß ich mal mit den Zeiten schauen die ich von meinem Modul bekomme. Meine Rechnung scheint erstmal so zu gehen. Danke Boris für den Denkanstoß
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Ich bekomme ne Kriese.


my $unixtime    = 1537032420;
my $oldunixtime = 1537032360;



print "plus 86400 \n"
unless( ($unixtime > ($oldunixtime + 900) or $unixtime == $oldunixtime) and int(gettimeofday() / 86400) == int($unixtime / 86400) );


print int(gettimeofday() / 86400) . "\n";
print int($unixtime / 86400) . "\n";


Ausgabe

plus 86400
17789
17789


Wieso sieht unless den and Teil ans Wahr an wo er doch unwahr sein sollte.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Sidey

Es ist noch früh, aber ich sehe folgendes:

Unixtime ist größer als oldunixtime . Darauf prüfst Du und es kommt true heraus.
Das oder brauchen wir jetzt nicht mehr betrachten.
Im Und Teil lässt zu prüfen, ob bei der Division durch 86400 die gleiche Ganzzahl heraus kommt. Solange beide Parameter (unixtime und gettimeofday) das gleiche Ergebnis bei der Division geben kommt true heraus.

Grüße Sidey

Gesendet von meinem XT1650 mit Tapatalk

Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

Sidey

Ich hätte da noch eine nicht von mir getestete dee:

Wenn das Datum ISO-8601 in einer Variable entspricht (YYYY-MM-DD), dann kannst Du mit gt oder lt Operatoren gegen eine weitere Variable vergleichen.


Ich glaube, das reduziert die Komplexität enorm.

Gruß Sidey

Gesendet von meinem XT1650 mit Tapatalk

Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

CoolTux

Hallo,

Vielen Dank für die guten Tipps und Sichtweisen. Ich habe nun eine für mich annehmbare Möglichkeit gefunden um meine beobachteten Situationen abfangen zu können.
Hoffe ich  ;D

Ich wünsche Euch einen erholsames Wochenende.



Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net