Mer om Date

Vi gör vår klocka mer användbar.

Vi kommer att använda samma skript som i förra avsnittet, men vi bygger ut det en del och tar bort sekundvisningen. Det nya skriptet ser mycket värre ut än det är. Faktum är att de flesta raderna handlar om att sätta namn på veckodagar och månader:

<SCRIPT language="JavaScript">
<!-- Göm
function startaKlockan()
{
var tidenNu=new Date();
var timmeNu=tidenNu.getHours();
var minutNu=tidenNu.getMinutes();
var sekundNu=tidenNu.getSeconds();
var dagNu=tidenNu.getDay();
var datumNu=tidenNu.getDate();
var manadNu=tidenNu.getMonth();
var arNu=tidenNu.getYear();
var webblasare=navigator.appName;
if (webblasare=="Netscape")
arNu+=1900;
if (timmeNu<10)
timmeNu="0"+timmeNu;
if (minutNu<10)
minutNu="0"+minutNu;
if (sekundNu<10)
sekundNu="0"+sekundNu;
if (dagNu==0)
dagNu="Söndag";
if (dagNu==1)
dagNu="Måndag";
if (dagNu==2)
dagNu="Tisdag";
if (dagNu==3)
dagNu="Onsdag";
if (dagNu==4)
dagNu="Torsdag";
if (dagNu==5)
dagNu="Fredag";
if (dagNu==6)
dagNu="Lördag";
manadNu+=1;
if (manadNu==1)
manadNu="januari";
if (manadNu==2)
manadNu="februari";
if (manadNu==3)
manadNu="mars";
if (manadNu==4)
manadNu="april";
if (manadNu==5)
manadNu="maj";
if (manadNu==6)
manadNu="juni";
if (manadNu==7)
manadNu="juli";
if (manadNu==8)
manadNu="augusti";
if (manadNu==9)
manadNu="september";
if (manadNu==10)
manadNu="oktober";
if (manadNu==11)
manadNu="november";
if (manadNu==12)
manadNu="december";
if (sekundNu=="00");
{
document.klockForm.startPlats.value=dagNu +" den " + datumNu +" "+manadNu +" "+ arNu +" klockan "+ timmeNu +":"+ minutNu;
}
setTimeout('startaKlockan()',1000);

// Sluta gömma -->
</SCRIPT>

Raderna var dagNu=tidenNu.getDay(); ... var arNu=tidenNu.getYear();
Vi deklarerar fyra nya variabler för att få veckodag, datum, månad och år.

Raderna var webblasare=navigator.appName; ... arNu+=1900;
Här deklarerar vi en ny variabel och kontrollerar vilken webbläsare som används. Om vi inte tar med de här raderna, kommer Netscape att visa år 2003 som 103.

Internet Explorer visar rätt år redan från början, åtminstone från version 5. Jag har inte kunnat kontrollera med äldre versioner. Läs mer i avsnittet om webbläsare.

Vi hade kunnat skriva arNu+=1900; som arNu=arNu+1900; i stället, med arNu+=1900; är ju onekligen kortare. Samma sak gäller för manadNu+=1; nedan.

Raderna if (dagNu==0) och dagNu="Söndag";
var dagNu=tidenNu.getDay(); ger oss dagen som en siffra, med början från 0 från söndag. I de sju if-satserna talar vi helt enkelt om vad som skall anges i stället för denna siffra.

manadNu+=1;
Eftersom var manadNu=tidenNu.getMonth(); ger oss månaden som en siffra med början från 0, ökar vi helt enkelt värdet med 1 för att få januari till 1 och december till 12.

Den här raden kan uteslutas helt, men då måste vi minska alla if-värden i följande satser med 1. Det känns naturligare att ha värden som stämmer med månadernas vanliga ordningsnummer.

Raderna if (manadNu==1) och manadNu="januari";
De här if-satserna anger vad som skall användas som månadsnamn i stället för en siffra.

if (sekundNu=="00");
Den här satsen ser till att klockan bara uppdateras när minuten växlar, och vi tänker ju inte visa sekunderna.

document.klockForm.startPlats.value= ...
Jämför den här satsen med motsvarande sats i förra avsnittet. Här har vi lagt till veckodag, datum, månad och år men tagit bort sekunderna.

Utöver det här skriptet behöver vi onLoad-hanteraren i den inledande BODY-taggen och FORM-taggen – båda finns med i förra avsnittet och den enda ändringen görs i FORM-taggen, där vi förlänger textraden:

<INPUT TYPE="text" name="startPlats" size="41" style="text-align: Center">

Observera style="text-align: Center", som gör att texten centreras och visas snyggt i båda de stora webbläsarna.

© SupportData.Net