2009-07-06 7 views
1

J'ai besoin de convertir un champ avec des millisecondes créées par l'application PHP à une valeur de date. Y a-t-il un moyen de le faire en utilisant VBScript? ou convertir en date-heure dans SQL 2005?ASP: convertir des millisecondes à ce jour

Exemple: 1113192000-mm/dd/yyyy hh:mm:ss

Répondre

1

Vous aurez besoin d'avoir un temps de base pour compter les millisecondes de par exemple 1er janvier 1970 ou similaire.

Vous divisez ensuite le nombre de millisecondes par 1000 pour obtenir le nombre de secondes - en conservant le reste.

Diviser le nombre de secondes par 60 (en conservant le reste) pour obtenir le nombre de minutes.

Puis 60 à nouveau pendant des heures, 24 pour jours.

Ensuite, il devient difficile comme vous avez des années bissextiles à considérer. Il y a another question on this here.

Une fois que vous avez vos années, jours, heures, minutes, secondes et millisecondes vous ajoutez ceci à la base date-heure pour obtenir la date du temps représenté.

D'autres ont publié du code etc. que vous pourriez utiliser.

+0

OK. Et si l'heure de base est le 1er janvier 1970. Quel serait le code pour le convertir? Merci. –

+0

merci beaucoup. –

1

Je pense que ce que vous appelez des millisecondes est vraiment le temps passé par les fonctions heure/date du php. Vous pouvez donner à cette fonction un coup de feu pour obtenir le temps d'époque convertis au format datetime en ASP:

fonction epoch2date (myEpoch)

epoch2date = DateAdd ("s", myEpoch, « 01/01/1970 00 : 00: 00")

fonction fin

Source: http://www.epochconverter.com/epoch/functions.php#asp

3

Quelque chose comme ce qui suit devrait fonctionner:

Function ConvertPhpToDate(numSeconds) 
    Dim dEpoch 
    dEpoch = DateSerial(1970,1,1) 
    ConvertPhpToDate = DateAdd("s",numSeconds,dEpoch) 
End Function 

Notez que la fonction php time() renvoie le nombre de 'secondes' et non de millisecondes. http://php.net/manual/en/function.time.php

+0

Merci cela a fonctionné pour moi. –

1
msValue = 32312312 
dtValue = DateAdd("s", msValue/1000, CDate("1970-01-01 00:00:00")) 

envelopper dans une fonction:

Function TimestampToDate(timestamp) 
    TimestampToDate = DateAdd("s", timestamp/1000, CDate("1970-01-01 00:00:00")) 
End Function 
Questions connexes