falsches geburtsdatum?

Seite 1 von 1 - Forum: Community Hub auf overclockers.at

URL: https://www.overclockers.at/community-hub/falsches_geburtsdatum_141505/page_1 - zur Vollversion wechseln!


Friedel schrieb am 28.04.2005 um 13:29

hab am 20.10.1969 geburtstag, wird aber als 31.12.1969 angezeigt.
wenn ichs auf 1970 ändere wird der 20.10. angezeigt, zurück auf 1969 und es ist wieder der 31.12.
hmmm, bug?


mat schrieb am 28.04.2005 um 13:34

vbulletin ist nicht auf so alte leute auslegt :)

das datumfeld wird "nur" als unixtimestamp abgespeichert (0 == 1. 1. 1970). dh: du wirst dich mit 1970 begnügen müssen.


Friedel schrieb am 28.04.2005 um 13:51

Zitat von mat
vbulletin ist nicht auf so alte leute auslegt :)
:eek: :D
Zitat von mat
das datumfeld wird "nur" als unixtimestamp abgespeichert (0 == 1. 1. 1970). dh: du wirst dich mit 1970 begnügen müssen.
najaa, ist ja nicht so tragisch. :)


Klingone schrieb am 28.04.2005 um 14:39

Ups... ist mir die ganzen Jahre noch gar nicht aufgefallen - V5-Feature-Request ? :D

Na ja, bei mir liegt er wenigstens nur 26 Tage daneben ... 05.12.1969...

Klingi


derelict schrieb am 29.04.2005 um 12:04

Zitat von mat
das datumfeld wird "nur" als unixtimestamp abgespeichert (0 == 1. 1. 1970). dh: du wirst dich mit 1970 begnügen müssen.

Nö, als MySQL Date typ, und selbst ein Timestamp würde signed sein. Das erklärt den Fehler nicht, der übrigends in der vbulletin-referenzimplementierung nicht enthalten ist.


MajorTom schrieb am 29.04.2005 um 12:46

Ja, und früher gabs ihn auch nicht (da war mein GBD korrekt ersichtlich) - aber in meinem Alter ist man eh' schon bald froh, wenn man ein paar Jährchen jünger gemacht wird.... ;)


mat schrieb am 29.04.2005 um 15:00

Zitat von creAlict
Nö, als MySQL Date typ, und selbst ein Timestamp würde signed sein. Das erklärt den Fehler nicht, der übrigends in der vbulletin-referenzimplementierung nicht enthalten ist.
unix timestamp ist unsigned, so ist er definiert. wenn du von den rückgabewerten von php sprichst, die signed sind, dann solltest du dir vl die datentypen dieser sprache nochmal ein wenig ansehen.

weil du grade vb-"referenz"-implementation ansprichst.. ja, das birthday dbfeld ist ein DATE, aber das ist sinnlos wenn es dann folgendermaßen formatiert wird:
Code: PHP
$bday = explode("-",$userinfo[birthday]);
if (date("Y")>$bday[0] and $bday[0]>1901 && $bday[0]!='0000') {
  $birthday = @date($calformat1,mktime(0,0,0,$bday[1],$bday[2],$bday[0])); }
dh: die geburtstagsdarstellung im profile hat _niemals_ funktioniert.


MajorTom schrieb am 29.04.2005 um 15:14

öhm - möcht' mich ja nicht einmischen (kenn' mich auch nicht wirklich aus ;))

- aber was immer "funktioniert" bedeutet - dortgestanden hat das richtige Geburtsdatum bei mir früher schon!


mat schrieb am 29.04.2005 um 15:26

watchout, derelict?


derelict schrieb am 29.04.2005 um 15:29

Zitat
http://at2.php.net/date
Anmerkung: Der gültige Bereich eines Timestamp liegt typischerweise zwischen Fri, 13 Dec 1901 20:45:54 GMT und Tue, 19 Jan 2038 03:14:07 GMT. (Das entspricht den minimalen und maximalen Werten für einen vorzeichenbehafteten 32-Bit Integer). Unter Windows-Betriebssytemen ist dieser Bereich auf 01-01-1970 bis 19-01-2038 beschränkt.

PHP kennt im Grunde keine "richtigen" Datentypen.

Zugegeben, die PHP-Datumsfunktionen sind müll, aber für den angesprochenen Fall funktionieren sie (unter unix-systemen). Teste den von dir geposteten Codeteil mit einem datum <1970, du wirst sehen es funktioniert.

Oder läuft dieses Forum mittlerweile unter Windows :confused:

Der Standard-Timestamp ist 32Bit signed integer, mit einem Wertebereich von 1901-2038.
Neuere Systeme und Sprachen nutzen deswegen einen 64Bit signed Integer.


mat schrieb am 29.04.2005 um 15:52

ja, das forum läuft mittlerweile unter windows :rolleyes:

ich habs mir jetzt nochmal genauer angeschaut und der fehler liegt wahrscheinlich an php, vl auch am os/os setup. die funktion mktime() gibt maximal einen timestamp bis 31.12.69 zurück. mal schauen..


derelict schrieb am 29.04.2005 um 15:56

-> http://phplens.com/phpeverywhere/adodb_date_library


fatmike182 schrieb am 03.01.2009 um 16:25

btw: Garbage ist 109J alt, da keine Jahreszahl eingegeben war.
Kleinigkeit, ich weiß...


WONDERMIKE schrieb am 03.01.2009 um 17:49

der macht auch nochmal mindestens 100 :D




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025