16. februar 2006 - 00:38Der er
10 kommentarer og 1 løsning
Unixtime eller lignende i ASP
Hejsa,
Et hurtigt spørgsmål til alle Jer :)
Findes der en tilsvarende dato/tids-enhed i ASP som f.eks. php's UnixTime? Altså en måde hvorpå man kan få et tal (dette tilfælde antal sekunder fra 1/1-1970 00:00:00 til når funktionen kaldes)?
Kan godt forestille mig en algoritme som kan skabe tallet, men jeg skal også bruge en funktion som kan fortælle mig det præcise klokkeslet og dato udfra en gemt værdi, dermed skal der tages højde for skudår, sommertid etc.
Så det korte spørgsmål - Findes der tilsvarende dato/tids-funktion i ASP som php's behandling af UnixTime?
Hvis ikke - er der nogen, der har fundet nogen på Nettet et sted?
Kender ikke UnixTime, men hvis du skal bruge antal sekunder siden en given dato, kan du bruge DateDiff <% startDate=cDate("1/1-1970 00:00:00") response.Write DateDiff("S", startDate,now()) %>
Okay, alletiders.. Kan man så ud fra ovenstående resultat "regne tilbage" og få hvilken dato og klokkeslet ud af det?
Synes godt om
Slettet bruger
16. februar 2006 - 15:35#3
Jeps! Her er der et script som kan regne tilbage efter din UnixTid... <% AntalSekunder = 86400 startDate=cDate("1/1-1970 00:00:00") UnixTime = DateDiff("S", startDate,now()) diff = UnixTime-AntalSekunder
Tid = DateAdd("s", diff, startDate) Response.Write Tid %> Variablen "AntalSekunder" skal du give en værdi efter antallet af sekunder du vil regne tilbage...
- Sig til hvis du skal have lavet det til en function...
Jeg skal bruge det så jeg kan gemme en event i en database med tidsvariablen på. Dermed kan der sorteres i tabellen.
Dernæste bruger jeg så den gemte tidsværdi til at lave en liste over de 10 seneste events, som så vises på hjemmesiden og brugeren kan klikke på hver af dem respektivt for en handling. På denne liste skal tidsværdien så kunne omskrives tilbage til noget der giver mening.
Altså..
16 februar 2006 kl. 15:42 uploader jeg et billede med en kommentar på. Denne værdi omskrives til antal sekunder fra f.eks. 1/1-1970 00:00:00. Værdien gemmes sammen med filnavnet i databasen.
På en liste over "de sidste 10 events" står min upload nu øverst da der udtrækkes fra databasen sorteret efter størrelse af tal. Tallet omskrives til dato så der står:
"Filnavn" uploadet af Jesper, d. 16 februar 2006 15:42
Det er sådan nogle funktionaliteter jeg leder efter :)
Synes godt om
Slettet bruger
16. februar 2006 - 16:14#5
- Jamen den kommer her så: <% function tid(streng) tid = streng if (tid <> "" AND isnumeric(tid)) then startDate=cDate("1/1-1970 00:00:00") UnixTime = DateDiff("S", startDate,now()) diff = UnixTime-tid tid = DateAdd("s", diff, startDate) else tid = "" end if end function %> <%="" & tid("86400") & ""%>
Så skal du bare angive i den sidste linie hvor mange sekunder vi skal regne tilbage...
Hov, det lykkedes alligevel.. Godt nok en lidt besværlig måde bare fordi jeg er vant til at regne i sekunder fra php's time(). Den er bare så nem at manipulere med, men måske findes der nok en lidt nemmere løsning :)
Tak for hjælpen, Dan - smid et svar hvis du vil ha' point?
Synes godt om
Slettet bruger
19. februar 2006 - 00:06#8
OK! Godt du fik det til at virke...
- Smider her et svar...
og sig til hvis du skal have videre hjælp, med den her (i mine øjne) noget besværlige UnixTime...
\Dan
Synes godt om
Slettet bruger
19. februar 2006 - 00:09#9
Så har jeg lige et spørgsmål til dig - mest bare for nysgerrighedens skyld:
Hvorfor i alverden starter UnixTime den 1/1-1970???
Skal det bare forstås som om dette er tidernes morgen for php-verden eller hvordan?
- Og i så fald, har man ikke et problem så hvis man med UnixTime vil regne tilbage til et tidspunkt før 1/1/1970? Som for eksempel hvis man vil vide hvor længe det er siden Gravbaldemanden blev født? ;-)
Så det er åbenbart "tidsalderen" for Unix maskinen og så er det den dato der danner basis for tidsregningen :) Nu har jeg primært arbejdet med php før, og der er den fantastisk nem at arbejde/manipulere med set i forhold til det vi lige har lavet her, men der findes nok en LANGT nemmere løsning i ASP også, som jeg bare ikke har luret :)
Synes godt om
Slettet bruger
19. februar 2006 - 00:31#11
Mange tak for dit svar jesper!
- hmm... Men i mine øjne, som asp-fan så har jeg lidt svært ved at se fordelen ved UnixTime og den måde at beregne tid på...
- Og ja... i asp synes jeg i hvert fald det er MEGET nemmere at "styre" og beregne tiden...
- Bliver det hele ikke bare mere uoverskueligt og mere besværligt at skulle regne X antal sekunder fra 1/1/1970? Og hvad er formålet egentlig? For man ville jo aldrig bruge den tidsregning til andet... Altså vi mennesker kan vel næppe bruge UnixTime til noget i vores hovede... Det bliver i hvert fald et alt for stort regnestykke for mig hvis jeg for eksempel prompte skulle kunne svare på hvilken dato og klokkeslæt 999999 sekunder fra 1/1/1970 er...
- Nå, men, "over and out" herfra...
og tak for point!
\Dan
Synes godt om
Ny brugerNybegynder
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.