PHP: Konvertieren: Unix Time to File Time
DJ_Cyberdance 15.01.2006 - 13:04 1560 2
DJ_Cyberdance
Here to stay
|
Ich müßte einen Unix-Timestamp mittels PHP ins M$ FileTime Format konvertieren. M$ sagt freundlicherweise wies geht: http://support.microsoft.com/defaul...B;en-us;q167296Aber das ist leider für C++, nicht für PHP... hat jemand eine Idee, wie ich das in PHP bewerkstelligen könnte? Ich brauch keinen 64bit-Wert, 2x32bit (die dort erwähnten dwLowDateTime und dwHighDateTime) würden mir reichen, auch ein String wär ok... Hat jemand eine Idee?
|
samuel
.:: unnahbar ::.
|
ich stand neulich bei einer mobilen anwendung fuer den nokia 9500 communicator vor einem vergleichbaren problem.
in der J2ME gibt es eine abstracte klasse Calendar welche felder enthaelt, die man durch die uebergabe der unix system time berechnen kann. moeglicherweise findest du nach etwas suchen fuer php vergleichbare funktionen/methoden/klassen/whatever...
hth sam
|
atrox
in fairy dust... I trust!
|
das problem ist nicht die umrechung (unixtime hat eine auflösung von 1 sec und startet 1.1.1970) (win32 filetime hat eine auflösung von 100 nsec und startet 1.1.1601): die ist mit einem offset und einer linearen skalierung bewerkstelligt: win32filetime=unixtime*10000000+116444736000000000;
das problem ist, daß php überlicherweise nur 32 bit integer unterstützt, und daher diese rechnung gar nicht durchführen kann.
du könntest dich natürlich mit einem näherungswert zufrieden geben, und als fließkomma berechnen, und hinterher in ein hi-integer und low-integer konvertieren - was allerdings auch nicht so unproblematisch ist, weil php nur signed integers kann. wenn ein string reicht, kann man das float immer noch in einen string umwandeln.
andere möglichkeit einer exakten lösung ist das verwenden einer library für beliebig lange ganzzahlen, wie der gmp - oder das ausprogrammieren von addition und multiplikation auf zeichenketten.
|