Rechnen mit Datumswerten

A5 Infoschlampe

Erfahrenes Mitglied
hi,

ich habe ein abstimmungsfenster gemacht und möchte dass jeder angemeldete user nur einmal pro woche abstimmen darf.

also wenn er das erste mal abstimmt wird in die mysql datenbank das aktuelle datum reingeschrieben. für den 20.12.01 also 2001-12-20.
wenn er jetzt am nächsten tag wieder abstimmt, möchte ich die differenz berechnen, die ja für eine woche GRÖSSER als 7 sein muss, um wieder abstimmen zu können.

aber ich glaube mit...
-----
$date1="2001-12-20"; // Aktuelles Datum aus Datenbank
$date2="2001-12-21"; // Aktuelles Datum der 2ten Abstimmung

$differenz=$date2-$date1 // differnez ermitteln?
-----
...komme ich irgendwie nicht so weit - wie kann ich das machen?

thx ciao
 
timestamp
Gibt die seit Beginn der UNIX-Epoche (Januar 1 1970 00:00:00 GMT) bis jetzt vergangenen Sekunden zurück.

Und mit dem Befehl

$timestamp=time(void);

hasst du einen schönen wert um das zu tun, was du tun willst!
 
achso, ihr meint ich soll statt das datum im datumsformat abzufangen, generell die unix rechnung nehmen, da diese in *integer* vorliegt! Oder?!

da könnte ich nun zusätzlich nun fragen, wie man es schaffen kann von einem aktuellen datum, wie es bei mir ja in der DB steht, die unixzeit zu ermitteln. also : "wieviele sekunden von unix an sind vergangen bis zu meinem datum aus der datenbank" ... oder geht das nicht? weil dann kann ich meine datenbank unverändert lassen, und muss nicht diesen unix wert speichern. ?!?!?!?
 
ich glaube ein generelles umsteigen auf timestamp wäre angebrachter. also du lässt jeweils den aktuellen timestamp in die datenbank eintragen und davon ausgehend wird dann immer überprüft ob halt die anzahl an sekunden seitdem vergangen ist.

wenn "true" dann kann gevotet werden und wenn "false" dann eben nicht.
 
so, is zwar nich direkt zum thema, aber zur überschift passt's ;)

wenn ich jetz ein datum habe, hat einer schon eine fertige methode, um von diesem datum an die zeit zu errechnen, die bis jetzt vergangen ist? is z.b. sinnvoll, wenn ich mein geburtsdatum irgendwo angebe und später wie z.b. hier in der community zum geburtstag zu gratulieren.

wenn da jemand schon was hat, könnte er es vielleicht hier posten, dann muss ich das nich mehr schreiben ;). jeder hilft jedem...

matt:)
 
dafür gibt es eigene PHP-Befehle:

$timestamp=mktime($stunde,$minute,$sekunde,$monat,$tag,$jahr);

ermittelt aus einem Datum den Timestamp. Vorher muss man natürlich den "Datumsstring" mit Stringfunktionen entsprechend "zerhacken"

mit dem Befehl date($formatstring,$timestamp); kann man dann einen Timestamp wieder in einen String zurückformatieren.

die Funktion $jetzt=time(); gibt den aktuellen Zeitstempel von jetzt aus. (ich glaube now() geht auch, bin aber net sicher)



Dunsti
 

Neue Beiträge

Zurück