Sida 1 av 2
Javascript date
Postat: 27 mars 2023, 11:21:13
av GeekJoan
Har ett script ligger och kör, men nu när den ställde om till sommartid så märker jag att den inte plockar tiden rätt.
Kan man lägga in så den plockar tiden från en viss zon så den ändrar själv efter sommar/vintertid?
Kod: Markera allt
function date_time(id)
{
date = new Date;
year = date.getFullYear();
month = date.getMonth();
months = new Array('Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec');
d = date.getDate();
day = date.getDay();
days = new Array('Söndag -', 'Måndag -', 'Tisdag -', 'Onsdag -', 'Torsdag -', 'Fredag -', 'Lördag -');
h = date.getHours();
if(h<10)
{
h = "0"+h;
}
m = date.getMinutes();
if(m<10)
{
m = "0"+m;
}
s = date.getSeconds();
if(s<10)
{
s = "0"+s;
}
result = ''+days[day]+' '+d+' '+months[month]+' '+year+' - '+h+':'+m+':'+s;
document.getElementById(id).innerHTML = result;
setTimeout('date_time("'+id+'");','1000');
return true;
}
Re: Javascript date
Postat: 27 mars 2023, 12:04:04
av MadModder
Javascript använder väl den lokala tiden på den dator scriptet körs?
Re: Javascript date
Postat: 27 mars 2023, 12:49:06
av GeekJoan
Ja, med det scriptet ovan så gör den det. Men det är ju det jag vill komma ifrån så den tar tiden från någon annan server där tiden går rätt.
Re: Javascript date
Postat: 27 mars 2023, 12:54:25
av agehall
Skicka tiden i valfritt format från servern? Det är alltid krångel med Javascript och Date om du frågar mig. Men det viktigaste är att man skickar med en referens i typ UTC och sedan justerar display-format/värde lokalt på klienten för att användaren ska förstå vad det är för tid man pratar om.
Re: Javascript date
Postat: 27 mars 2023, 13:02:44
av rvl
Så du vill ha lokal tid men litar inte på klientens klocka, eller ens att...
...är rätt?
Re: Javascript date
Postat: 27 mars 2023, 13:04:36
av MadModder
Prova ”solution 2” på den här sidan
https://www.codeproject.com/Questions/1 ... javascript
om du vill ta tiden från aktuell webbserver.
Re: Javascript date
Postat: 27 mars 2023, 13:06:33
av GeekJoan
Måste ju inte vara i just javascript.
Men jag kommer inte åt att ändra på datorn som det körs på.
Re: Javascript date
Postat: 27 mars 2023, 13:21:09
av MadModder
Du kommer inte åt den lokala datorn?
Försök lösa det med PHP då. Det körs på servern och tar tiden därifrån.
Re: Javascript date
Postat: 27 mars 2023, 15:40:54
av GeekJoan
Om jag kunde så skulle jag göra det.
Re: Javascript date
Postat: 27 mars 2023, 16:14:36
av MadModder
Kan å kan. Nåt språk kan du väl? Basic? Sen kommandoreferens på php.net för hjälp så är det snart fixat.

Det finns väldigt många exempel där.
Re: Javascript date
Postat: 27 mars 2023, 20:06:13
av GeekJoan
MadModder skrev: ↑27 mars 2023, 13:04:36
Prova ”solution 2” på den här sidan
Testade denna, men den är ju statisk.
Den ska ju ticka som denna:
https://geekjoan.com/multiscreen/klocka.php
Re: Javascript date
Postat: 27 mars 2023, 20:44:38
av MadModder
Nej det finns ingen setinterval i klientkoden som gör att den uppdaterar sig en gång i sekunden, vilket det gör i din kod.
Du måste ta det som plockar tiden och kombinera ihop det med din kod.
Kan ta en titt på det imorgon eftermiddag om du inte klurat ut det innan dess.

Re: Javascript date
Postat: 27 mars 2023, 21:17:46
av rvl
Funkar dethär?
Kod: Markera allt
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Test</h1>
<h2>Geekjoan</h2>
<p>lorem ipsum</p>
<p id="joan"></p>
<script>
var xmlHttp;
function srvTime(){
try {
//FF, Opera, Safari, Chrome
xmlHttp = new XMLHttpRequest();
//console.log("geek");
}
catch (err1) {
//IE
try {
xmlHttp = new ActiveXObject('Msxml2.XMLHTTP');
}
catch (err2) {
try {
xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
}
catch (eerr3) {
//AJAX not supported, use CPU time.
alert("AJAX not supported");
}
}
}
xmlHttp.open('HEAD',window.location.href.toString(),false);
xmlHttp.setRequestHeader("Content-Type", "text/html");
xmlHttp.send('');
return xmlHttp.getResponseHeader("Date");
}
var st = srvTime();
var date1 = new Date(st);
var localTime = new Date();
document.write("Local machine time was: <br>" + localTime + "<br>");
document.write("Server time was: <br>" + date1);
var st = srvTime();
var date = new Date(st);
function date_time(id)
{
st = srvTime();
date = new Date(st);
//console.log('debug', date);
year = date.getFullYear();
month = date.getMonth();
months = new Array('Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec');
d = date.getDate();
day = date.getDay();
days = new Array('Söndag -', 'Måndag -', 'Tisdag -', 'Onsdag -', 'Torsdag -', 'Fredag -', 'Lördag -');
h = date.getHours();
if(h<10)
{
h = "0"+h;
}
m = date.getMinutes();
if(m<10)
{
m = "0"+m;
}
s = date.getSeconds();
if(s<10)
{
s = "0"+s;
}
result = ''+days[day]+' '+d+' '+months[month]+' '+year+' - '+h+':'+m+':'+s;
document.getElementById(id).innerHTML = result;
setTimeout('date_time("'+id+'");','1000');
return true;
}
date_time("joan");
</script>
</body>
</html>
Re: Javascript date
Postat: 27 mars 2023, 21:58:52
av agehall
MadModder skrev: ↑27 mars 2023, 13:21:09
Försök lösa det med PHP då. Det körs på servern och tar tiden därifrån.
Oavsett vad frågan är så är svaret ALDRIG PHP. Det är ett enda stort säkerhetshål som aldrig borde ha existerat.
Re: Javascript date
Postat: 27 mars 2023, 22:05:32
av Mickecarlsson
Det är din åsikt, den får du gärna ha, men jag håller definitivt inte med dig.