Avatar billede speedy Nybegynder
23. november 2002 - 21:43 Der er 16 kommentarer og
1 løsning

Konvertere fra og til Unix Timestamp

Hej,

Er der nogen der ligger inde med nogle funktioner som kan konvertere en ASP-dato om til unix timestamp-format og omvendt ?

/SpEeDy
Avatar billede hossein Nybegynder
23. november 2002 - 23:19 #1
Unix Timestamp til Human:

<SCRIPT LANGUAGE="JavaScript">

function Calculate()
  {
    if(document.form1.switcher.value == "=>")
      timeToHuman();
    else if(document.form1.switcher.value == "<=")
      humanToTime();
  }
  function timeToHuman()
  {
    var theDate = new Date(document.form1.timeStamp.value * 1000);
    dateString = theDate.toGMTString();
    arrDateStr = dateString.split(" ");
    document.form1.inMon.value = getMonthNum(arrDateStr[2]);
    document.form1.inDay.value = arrDateStr[1];
    document.form1.inYear.value = arrDateStr[3];
    document.form1.inHr.value = arrDateStr[4].substr(0,2);
    document.form1.inMin.value = arrDateStr[4].substr(3,2);
    document.form1.inSec.value = arrDateStr[4].substr(6,2);
  }
  function humanToTime()
  {
    var humDate = new Date(Date.UTC(document.form1.inYear.value,
          (stripLeadingZeroes(document.form1.inMon.value)-1),
          stripLeadingZeroes(document.form1.inDay.value),
          stripLeadingZeroes(document.form1.inHr.value),
          stripLeadingZeroes(document.form1.inMin.value),
          stripLeadingZeroes(document.form1.inSec.value)));
    document.form1.timeStamp.value = (humDate.getTime()/1000.0);
  }
  function pointRight()
  {
    document.form1.switcher.value="=>";
  }
  function pointLeft()
  {
    document.form1.switcher.value="<=";
  }
  function stripLeadingZeroes(input)
  {
    if((input.length > 1) && (input.substr(0,1) == "0"))
      return input.substr(1);
    else
      return input;
  }
  function getMonthNum(abbMonth)
  {
    var arrMon = new Array("Jan","Feb","Mar","Apr","May","Jun",
          "Jul","Aug","Sep","Oct","Nov","Dec");
    for(i=0; i<arrMon.length; i++)
    {
      if(abbMonth == arrMon[i])
        return i+1;
    }
  }
//  End -->
</script>
Avatar billede speedy Nybegynder
23. november 2002 - 23:59 #2
Det jeg søgte var 2 ASP-funktioner som kunne konvertere fra Unix Timestamp  til ASP's datoformat (samme format som Now())

/SpEeDy
Avatar billede hossein Nybegynder
24. november 2002 - 00:11 #3
2 ASP-Funktioner?
Avatar billede overload.dk Nybegynder
24. november 2002 - 11:19 #4
En funktion der kunne konvatere asp datoformat til unix timestamp og...
en funktion der kunne konvatere unix timestamp til asp datoformat.
Avatar billede overload.dk Nybegynder
24. november 2002 - 11:19 #5
Desuden tror jeg også det skulle være i ASP og ikke JavaScript.
Avatar billede speedy Nybegynder
24. november 2002 - 16:15 #6
overload har ret,

Jeg skal bruge 1 ASP-funktion der kan konvertere fra UNIX_TIMESTAMP til ASP-format

og 1 ASP-funktion der kan konvertere fra ASP-format til UNIX_TIMESTAMP.

Altså 2 ASP-funktioner i alt.

og ikke noget javascript.

/SpEeDy
Avatar billede skg Nybegynder
25. november 2002 - 03:21 #7
<%

Response.Write(ToStamp(ToDate("20021125134529")))

Function AddLeadingZero( number, length )
  AddLeadingZero = number
  Do While Len(AddLeadingZero) < length
    AddLeadingZero = "0" & AddLeadingZero
  Loop
End Function

Function ToDate( aDateStamp )
  Dim lYear, lMonth, lDay, lHour, lMinute, lSecond
  lYear  = CLng(Mid(aDateStamp,1,4))
  lMonth  = CLng(Mid(aDateStamp,5,2))
  lDay    = CLng(Mid(aDateStamp,7,2))
  lHour  = CLng(Mid(aDateStamp,9,2))
  lMinute = CLng(Mid(aDateStamp,11,2))
  lSecond = CLng(Mid(aDateStamp,13,2))
  ToDate = CDate(lYear & "-" & lMonth & "-" & lDay & " " & lHour & ":" & lMinute & ":" & lSecond)
End Function

Function ToStamp( aDate )
  Dim Stamp
  Stamp = ""
  Stamp = Stamp & AddLeadingZero(Year(aDate),4)
  Stamp = Stamp & AddLeadingZero(Month(aDate),2)
  Stamp = Stamp & AddLeadingZero(Day(aDate),2)
  Stamp = Stamp & AddLeadingZero(Hour(aDate),2)
  Stamp = Stamp & AddLeadingZero(Minute(aDate),2)
  Stamp = Stamp & AddLeadingZero(Second(aDate),2)
  ToStamp = Stamp
End Function



%>
Avatar billede skg Nybegynder
25. november 2002 - 03:26 #8
SpEeDy > javascript er bare et sprog, det er ASP ikke, man kan sagtens bruge javascript i ASP ...

<script language="javascript" runat="server">
//kode
Response.Write("Det her virker også")
</script>
Avatar billede speedy Nybegynder
25. november 2002 - 17:20 #9
jamen problemet er bare at de funktioner som hossein og du har skrevet ikke gør det som jeg ønsker.

Din er den der kommer tættest på, men 20021125134529 er ikke et unix_timestamp for d. 25/11 2002 kl. 13:45:29

Unix_timestamp er antallet af Sekunder siden 1/1 1970

/SpEeDy
Avatar billede hossein Nybegynder
25. november 2002 - 23:20 #10
Kan du bruge den? unix -> win

'Visual Basic/VBScript
Dim dateFormat
DateFormat = DateAdd("s",Date, "01/01/1970")
Avatar billede skg Nybegynder
27. november 2002 - 10:01 #11
DOH ...

hvis det bare er det, er det jo såre simpelt !

lav dine datoer i javascript, og kald getTime() på dem, så har du dit UnixTimeStamp


<script language="javascript" runat="server">
function getUnixTimeStamp(year,month,day,hour,minutes,seconds){
d = new Date(year,month,day,hour,minutes,seconds)
return d.getTime()
}
function getDate(timestamp)
{
d = new Date()
d.setTime(timestamp)
return d;
}
</script>
Avatar billede speedy Nybegynder
02. december 2002 - 18:52 #12
hmm...jeg har ikke fået mail omkring nye indlæg i dette spørgsmål, så derfor dette forsinkede svar.

skg>>
Det er ikke UNIX_TIMESTAMP som getTime får tilbage. Så den kan desværre heller ikke bruges.

hossein>>
Microsoft VBScript runtime error '800a0005'

Invalid procedure call or argument: 'DateAdd'

/test.asp, line 3



/SpEeDy
Avatar billede overload.dk Nybegynder
02. december 2002 - 19:09 #13
<%

response.write "TimeStamp: " & Abs(DateDiff("s",Now(), "01/01/1970")) & "<br>"

response.write "Time: " & DateAdd("s", Abs(DateDiff("s",Now(), "01/01/1970")), "01/01/1970")

%>
Avatar billede speedy Nybegynder
02. december 2002 - 19:55 #14
Yes! Tusind tak overload.dk :D

/SpEeDy
Avatar billede hossein Nybegynder
04. december 2002 - 22:35 #15
'Visual Basic/VBScript
Dim dateFormat
DateFormat = DateAdd("s",Date, "01/01/1970")

Dette virker hvis man prøver at indsætte sit variable i stedet for Date!? som overload har gjort :)
Avatar billede speedy Nybegynder
04. december 2002 - 23:25 #16
hossein>>Ok ;) jeg bruger næsten aldrig ASP, så jeg er ikke helt inde i at forstå deres fejlmeddelelser endnu.

/SpEeDy
Avatar billede hossein Nybegynder
04. december 2002 - 23:31 #17
Det er OK!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester