webForumDet fria alternativet

datum.getHours() + 2 timmar

11 svar · 277 visningar · startad av mattiasnordin

mattiasnordinMedlem sedan maj 20012 080 inlägg
#1

Hej, jag kör följande kod för att få vad klockan är. Nu vill jag addera två timmar till klockan. Jag är medveten om att "+2" som jag använder nedan inte fungerar då klockan visar 26:00 som mest :-)

function tid<%=varID%>()
{
datum=new Date();
timmar=datum.getHours();
minuter=datum.getMinutes();
sekunder=datum.getSeconds();
timmar = timmar [red]+2[/red];
timmar="0"+timmar;
minuter="0"+minuter;
sekunder="0"+sekunder;
timmar=timmar.substring(timmar.length-2,timmar.length);
minuter=minuter.substring(minuter.length-2,minuter.length);
sekunder=sekunder.substring(sekunder.length-2,sekunder.length);
visar=timmar+":"+minuter+":"+sekunder;
document.tid.<%=varID%>.value=visar;
setTimeout("tid<%=varID%>()",1000);
}
tid<%=varID%>();

ÄR det någon som har något tips på hur jag enklet lägger till två timmar på "datum.getHours();"?

Peter SMedlem sedan dec. 20025 483 inlägg
#2
function tid<%=varID%>()
{
datum=new Date();
[B]datum.setHours(datum.getHours()+2);[/B]
timmar=datum.getHours();
minuter=datum.getMinutes();
sekunder=datum.getSeconds();
timmar="0"+timmar;
minuter="0"+minuter;
sekunder="0"+sekunder;
timmar=timmar.substring(timmar.length-2,timmar.length);
minuter=minuter.substring(minuter.length-2,minuter.length);
sekunder=sekunder.substring(sekunder.length-2,sekunder.length);
visar=timmar+":"+minuter+":"+sekunder;
document.tid.<%=varID%>.value=visar;
setTimeout("tid<%=varID%>()",1000);
}
tid<%=varID%>();

:)

mattiasnordinMedlem sedan maj 20012 080 inlägg
#3

Tack PeterS, det fungerade utmärkt.

Jag har dock en annan fråga. Vad jag förstår så hämtas denna tid från klienten. Hur gör man för att klockan ska utgå från GMT tid? Har sett att det nämns på vissa sidor.

Vill använda samma skript...

Mvh
Mattias

mattiasnordinMedlem sedan maj 20012 080 inlägg
#4

Någon?

Peter SMedlem sedan dec. 20025 483 inlägg
#5
...
datum.toGMTString();
...

:)

mattiasnordinMedlem sedan maj 20012 080 inlägg
#6

Jag försöker få till ett skript som visar lokal tid i olika delar av världen. Vill då att klockan ska gå efter GMT tid och sedan har jag en databas där jag hämtar information om vilka länder jag vill visa. Därav ASP taggarna i koden.

Men det var knepigt att testa då jag bara ser min egen klocka.
Är detta rätt?

	<SCRIPT LANGUAGE="JavaScript">
		function tid<%=varID%>()
		{
		datum=new Date();
		datum.toGMTString();
		datum.setHours(datum.getHours()<%=varTimeZoneCorrection%>);
		timmar=datum.getHours();
		minuter=datum.getMinutes();
		sekunder=datum.getSeconds();
		timmar="0"+timmar;
		minuter="0"+minuter;
		sekunder="0"+sekunder;
		timmar=timmar.substring(timmar.length-2,timmar.length);
		minuter=minuter.substring(minuter.length-2,minuter.length);
		sekunder=sekunder.substring(sekunder.length-2,sekunder.length);
		visar=timmar+":"+minuter+":"+sekunder;
		document.tid.<%=varID%>.value=visar;
		setTimeout("tid<%=varID%>()",1000);
		}
		tid<%=varID%>();
mattiasnordinMedlem sedan maj 20012 080 inlägg
#7

För tex Sverige så har jag lagt till +1 på timmarna men sidan visar då en timme för mycket. Alltså så lyckas jag inte med att få grundtiden att vara Greenvich tid (stavas det så? :r )

JohnsenMedlem sedan juli 2000836 inlägg
#8

Så länge du inte hämtar tiden från en server, kommer klientens tid att användas som grund.

Detta utgår från klientens uppfattning av GMT:

function tid<%=varID%>()
{
datum=new Date();
datum.setHours(datum.getHours()<%=varTimeZoneCorrection%>);
[b]timmar=datum.getUTCHours();
minuter=datum.getUTCMinutes();
sekunder=datum.getUTCSeconds();[/b]
timmar="0"+timmar;
minuter="0"+minuter;
sekunder="0"+sekunder;
timmar=timmar.substring(timmar.length-2,timmar.length);
minuter=minuter.substring(minuter.length-2,minuter.length);
sekunder=sekunder.substring(sekunder.length-2,sekunder.length);
visar=timmar+":"+minuter+":"+sekunder;
document.tid.<%=varID%>.value=visar;
setTimeout("tid<%=varID%>()",1000);
}
tid<%=varID%>();
mattiasnordinMedlem sedan maj 20012 080 inlägg
#9

Man tackar. Vad jag kan se fungerar detta alldeles utmärkt.

Nu måste jag bara verifiera att det fungerar för någon som inte sitter i samma tidzon.

Visst är det så att oavsätt vilken tidzon klienten är i så är GMT tiden densamma? Det innebär i så fall att om jag plussar på +1 med min variabel, <%=varTimeZoneCorrection%>, så kommer det bli samma tid för alla?!

:)

JohnsenMedlem sedan juli 2000836 inlägg
#10

Nja, det är väl en sanning med modifikation. Sommartiden infaller olika i olika länder, tex. i år startar sommartiden i EU 30/3 medans den startar 6/4 i USA.

JohnsenMedlem sedan juli 2000836 inlägg
#11

Jag var kanske lite otydlig.
GMT (UTC) Är konstant. Ibland är vår klocka (i Sverige) UTC +1 h och ibland UTC +2 h, beroende på om vi har sommartid eller inte.
Sommartidsräkning kan vara lite knepig, då den infaller olika i olika länder/regioner.

mattiasnordinMedlem sedan maj 20012 080 inlägg
#12

Det var bra info. Jag visste inte att det fungerade så. Käns som att det får fungera som det gör tills det blir sommar ;)
Blir ett senare problem så att säga.

Tackar och bockar...

132 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)