2009-07-06 9 views
1

Ich muss ein Feld mit Millisekunden von PHP-App zu einem Datumswert konvertiert werden. Gibt es eine Möglichkeit, dies mit VBScript zu tun? oder in Datetime in SQL 2005 konvertieren?ASP: Millisekunden bis heute umwandeln

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

Antwort

1

Sie erhalten eine Basiszeit, um die Millisekunden zu zählen zum Beispiel aus haben müssen 1. Januar 1970 oder ähnlich.

Dann teilen Sie die Anzahl der Millisekunden durch 1000, um die Anzahl der Sekunden zu erhalten - den Rest wird gespeichert.

Teilen Sie die Anzahl der Sekunden durch 60 (Speichern des Rests), um die Anzahl der Minuten zu erhalten.

Dann 60 wieder für Stunden, 24 für Tage.

Dann wird es schwierig, da Sie Schaltjahre berücksichtigen müssen. Es gibt another question on this here.

Sobald Sie Ihre Jahre, Tage, Stunden, Minuten, Sekunden und Millisekunden haben, fügen Sie diese zur Basis Datum-Uhrzeit hinzu, um die Datum-Uhrzeit darzustellen.

Andere haben Code usw. gepostet, den Sie verwenden könnten.

+0

OK. Was ist, wenn die Basiszeit der 1. Januar 1970 ist? Was wäre der Code, um es zu konvertieren? Vielen Dank. –

+0

vielen Dank. –

1

Ich denke, was Sie als Millisekunden bezeichnen, ist wirklich die Epoche Zeit, wie von den Zeit-/Datum-Funktionen des PHP zurückgegeben. Sie können diese Funktion lässt ein Schuss in die Epoche Zeit in Datetime-Format in ASP umgewandelt zu bekommen:

Funktion epoch2date (myEpoch)

epoch2date = DateAdd ("s", myEpoch „01.01.1970 00 : 00: 00")

Ende Funktion

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

3

So etwas wie die folgenden funktionieren sollte:

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

Hinweis: Die Funktion php time() gibt die Anzahl der Sekunden, nicht der Millisekunden, zurück. http://php.net/manual/en/function.time.php

+0

Danke das hat für mich funktioniert. –

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

es in einer Funktion Wrap:

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