Tach!
http://www.php.net/manual/en/language.types.integer.php#language.types.integer.overflow
Mit anderen Worten: 13521902163794 ist zu hoch, um vom Server als Integer gesehen werden zu können!?
Nur auf 32-Bit-Systemen. Auf 64-Bit-Systemen ist der Wertebereich von Integer deutlich größer.
Bleibt die Frage, wie der Wert 1345115986 zustande kommt.
Es wird sich sicherlich eine Antwort auf diese Frage finden lassen, aber sie ist uninteressant, weil man mit ihr nichts weiter anfangen kann, um das grundlegende Problem zu lösen. Das Handbuch beschränkt sich auch nur auf die Aussage "undefiniertes Ergebnis": "If the float is beyond the boundaries of integer [...], the result is undefined, since the float doesn't have enough precision to give an exact integer result."
Was nimmt man nun? Wenn man ein 64-Bit-System voraussetzen kann, kann man auch mit solch großen Integer-Werten arbeiten. In 32-Bit-Systemen muss man sich entscheiden, ob man den Wert bis auf die letzte Stelle genau braucht, dann muss man zu einem Ersatz auf String-Basis greifen, wie ihn die Extensions BCMath und GMP anbieten. Ist man mit der Präzision - oder besser gesagt, der technisch bedingen Ungenauigkeit - von Floats zufrieden, dann kann man diese nehmen.
dedlfix.