Javascript date

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Användarvisningsbild
GeekJoan
Admin
Inlägg: 10642
Blev medlem: 26 maj 2003, 15:59:27
Ort: Solna

Javascript date

Inlägg 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;
}
Användarvisningsbild
MadModder
Co Admin
Inlägg: 29906
Blev medlem: 6 september 2003, 13:32:07
Ort: MadLand (Enköping)
Kontakt:

Re: Javascript date

Inlägg av MadModder »

Javascript använder väl den lokala tiden på den dator scriptet körs?
Användarvisningsbild
GeekJoan
Admin
Inlägg: 10642
Blev medlem: 26 maj 2003, 15:59:27
Ort: Solna

Re: Javascript date

Inlägg 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.
agehall
Inlägg: 418
Blev medlem: 12 augusti 2020, 19:27:54

Re: Javascript date

Inlägg 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.
Användarvisningsbild
rvl
Inlägg: 5721
Blev medlem: 5 april 2016, 14:58:53
Ort: Helsingfors

Re: Javascript date

Inlägg av rvl »

Så du vill ha lokal tid men litar inte på klientens klocka, eller ens att...

Kod: Markera allt

date.getTimezoneOffset();
...är rätt?
Användarvisningsbild
MadModder
Co Admin
Inlägg: 29906
Blev medlem: 6 september 2003, 13:32:07
Ort: MadLand (Enköping)
Kontakt:

Re: Javascript date

Inlägg 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.
Användarvisningsbild
GeekJoan
Admin
Inlägg: 10642
Blev medlem: 26 maj 2003, 15:59:27
Ort: Solna

Re: Javascript date

Inlägg av GeekJoan »

Måste ju inte vara i just javascript.
Men jag kommer inte åt att ändra på datorn som det körs på.
Användarvisningsbild
MadModder
Co Admin
Inlägg: 29906
Blev medlem: 6 september 2003, 13:32:07
Ort: MadLand (Enköping)
Kontakt:

Re: Javascript date

Inlägg 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.
Användarvisningsbild
GeekJoan
Admin
Inlägg: 10642
Blev medlem: 26 maj 2003, 15:59:27
Ort: Solna

Re: Javascript date

Inlägg av GeekJoan »

Om jag kunde så skulle jag göra det.
Användarvisningsbild
MadModder
Co Admin
Inlägg: 29906
Blev medlem: 6 september 2003, 13:32:07
Ort: MadLand (Enköping)
Kontakt:

Re: Javascript date

Inlägg 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. :D
Det finns väldigt många exempel där.
Användarvisningsbild
GeekJoan
Admin
Inlägg: 10642
Blev medlem: 26 maj 2003, 15:59:27
Ort: Solna

Re: Javascript date

Inlägg 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
Användarvisningsbild
MadModder
Co Admin
Inlägg: 29906
Blev medlem: 6 september 2003, 13:32:07
Ort: MadLand (Enköping)
Kontakt:

Re: Javascript date

Inlägg 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. :D
Användarvisningsbild
rvl
Inlägg: 5721
Blev medlem: 5 april 2016, 14:58:53
Ort: Helsingfors

Re: Javascript date

Inlägg 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>
agehall
Inlägg: 418
Blev medlem: 12 augusti 2020, 19:27:54

Re: Javascript date

Inlägg 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.
Användarvisningsbild
Mickecarlsson
EF Sponsor
Inlägg: 3746
Blev medlem: 15 april 2017, 18:06:15
Ort: Malmö
Kontakt:

Re: Javascript date

Inlägg av Mickecarlsson »

Det är din åsikt, den får du gärna ha, men jag håller definitivt inte med dig.
Skriv svar