Avatar billede dannyhare Nybegynder
08. juni 2012 - 19:30 Der er 22 kommentarer og
1 løsning

Fremhæv dag

Hej der ude.

Jeg står og skal bruge noget simpel programmering, gerne uden database, det går simpelthen ud på at dagen i dag skal fremhæves i en simpel liste af uge dage.

Mandag
Torsdag
Onsdag
Torsdag
Fredag
Lørdag
Søndag

Dagen i dag er altså markeret fed

Jeg giver max point 200 point og gerne flere (hvis muligt) til den som kan komme med et brugbart svar, eller direkte kode :)
Avatar billede tjens Nybegynder
08. juni 2012 - 22:53 #1
Javascriptversion:
<!DOCTYPE html>
<html>
<head><title>Fremhæv dag</title>
<style type="text/css">
    .today { font-weight:bold; }
    .day { font-weight: normal; }
</style>
<script type="text/javascript">

    var pDays;
    var days = ["mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag", "søndag" ];

    function printDay( day, today) {
       
        tn = document.createTextNode( days[day] );
        sp = document.createElement("span");
        sp.className = ( day == today ) ? "today" : "day";
        sp.appendChild( tn );
        pDays.appendChild( sp );
        pDays.appendChild( document.createElement("br") );
    }

    window.onload = function () {

        pDays = document.getElementById("Days");

        var dn = new Date().getDay() - 1; // First day of week is Monday in my house
        if ( dn < 0) dn = 6;    // move sunday to last day
       
        for ( i = 0; i < days.length; i++  ) {
            printDay( i, dn );
        }
    }
</script>
</head>
<body>
    <div>
        <h3>Dage</h3>
        <p id="Days"></p>
    </div>
</body>
</html>
Avatar billede dannyhare Nybegynder
08. juni 2012 - 23:05 #2
Tak for dit svar, nu skal jeg så lige hitte ud af hvordan jeg tildeler dig point :)
Avatar billede tjens Nybegynder
08. juni 2012 - 23:11 #3
Jeg lægger hermed et svar, til brug for point
Avatar billede dannyhare Nybegynder
08. juni 2012 - 23:19 #4
:) Super.. Du måtte for min skyld gerne få mange flere, men jeg aner ikke hvordan man gør :) bruger ikke denne side så ofte, sidst var 2004 :)
Avatar billede dannyhare Nybegynder
08. juni 2012 - 23:21 #5
Også et spørgsmål mere også til 200 point, hvis det er muligt at give det i samme tråd.

Hvordan for jeg hver enkelt dag pakket ind i en tabel ?
Avatar billede tjens Nybegynder
08. juni 2012 - 23:48 #6
Indsæt dage i Table:
<!DOCTYPE html>
<html>
<head><title>Fremhæv dag</title>
<style type="text/css">
    .today { font-weight:bold; }
    .day { font-weight: normal; }
</style>
<script type="text/javascript">

    var pDays;
    var days = ["mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag", "søndag" ];

    function printDay( day, today) {
       
        tn = document.createTextNode( days[day] );
        tr = document.createElement("tr");
        td = document.createElement("td");
        tr.appendChild( td );
        td.className = ( day == today ) ? "today" : "day";
        td.appendChild( tn );
        pDays.appendChild( tr );
       
    }

    window.onload = function () {

        pDays = document.getElementById("Days");

        var dn = new Date().getDay() - 1; // First day of week is Monday in my house
        if ( dn < 0) dn = 6;    // move sunday to last day
       
        for ( i = 0; i < days.length; i++  ) {
            printDay( i, dn );
        }
    }
</script>
</head>
<body>
    <table>
        <th>Dage</th>
        <tbody id="Days"></tbody>
    </div>
</body>
</html>
Avatar billede dannyhare Nybegynder
08. juni 2012 - 23:59 #7
pm sendt
Avatar billede tjens Nybegynder
09. juni 2012 - 00:35 #8
Variant med baggrundsfarver:
<!DOCTYPE html>
<html>
<head><title>Fremhæv dag</title>
<style type="text/css">
    .today {
        font-weight:bold;
        background-color: Aquamarine;
    }
    .day {
        font-weight: normal;
    }
    #tider {
        background-color: LightBlue;
        border: none;
        border-collapse: collapse;
    }
    #tider td {
        padding: 2px 8px;
    }
</style>
<script type="text/javascript">

    var pDays;
    var days = ["mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag", "søndag" ];
    var hours = ["08-22", "08-21", "08-20", "08-20", "08-22", "08-16", "10-16" ];

    function printDay( day, today) {
       
        var tn = document.createTextNode( days[day] );
        var tr = document.createElement("tr");
        tr.className = ( day == today ) ? "today" : "day";
        var td = document.createElement("td");
        td.appendChild( tn );
        tr.appendChild( td );

        tn = document.createTextNode( hours[day] );
        td = document.createElement("td");
        td.appendChild( tn );
        tr.appendChild( td );
        pDays.appendChild( tr );
       
    }

    window.onload = function () {

        pDays = document.getElementById("Days");

        var dn = new Date().getDay() - 1; // First day of week is Monday in my house
        if ( dn < 0) dn = 6;    // move sunday to last day
       
        for ( i = 0; i < days.length; i++  ) {
            printDay( i, dn );
        }
    }
</script>
</head>
<body>
    <table id="tider">
        <th colspan="2">Åbningstider</th>
        <tbody id="Days"></tbody>
    </div>
</body>
</html>
Avatar billede dannyhare Nybegynder
09. juni 2012 - 01:07 #9
Tusinde tak :) Så har jeg lidt at lege med..

Hvad skylder jeg ?
Avatar billede arne_v Ekspert
09. juni 2012 - 03:31 #10
Husk den lille pointe at JavaScript kode viser dagen paa client PC mens PHP/anden server side kode viser dagen paa serveren.

Hvis de 2 er paa hver side af jorden, saa er der forskel.
Avatar billede dannyhare Nybegynder
09. juni 2012 - 15:22 #11
Hej Arne

Hvad ville en simpel php-løsning værre ?

Jeg er helt klar over der er en forskel, men denne løsning skal kun bruges til en hjemmeside som tilses af danskere, så lige i dette tilfælde er det enlig lige meget.

Men for at lære lidt mere så kunne det da være sjovt at få et eksempel, ale noget i den stil.

Jeg kender lidt til php, og at man ved simple kodning ex. echo date("d/m/Y"); kan fremkalde datoen, men så er jeg også stået af :)
Avatar billede arne_v Ekspert
17. juni 2012 - 04:23 #12
<?php
//setlocale(LC_ALL, 'da_DK'); // *nix
setlocale(LC_ALL, 'dan_DNK'); // windows
$days = array('Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lørdag', 'Søndag');
$today = ucfirst(strftime('%A', time()));
foreach ($days as $day) {
    if($day == $today) {
        echo "<li><b>$day</b></li>\r\n";
    } else {
        echo "<li>$day</li>\r\n";
    }
}
?>
Avatar billede dannyhare Nybegynder
17. juni 2012 - 15:56 #13
Hej arne, dit eksempel fungere ikke :(
Avatar billede arne_v Ekspert
17. juni 2012 - 18:04 #14
Det virker hos mig.

Hvilken fejl faar du?

Hvilken platform koerer du paa?

Hvad returnerer ucfirst(strftime('%A', time())) ?
Avatar billede dannyhare Nybegynder
17. juni 2012 - 18:07 #15
Jeg får alle ugens dage i en liste men ingen er fremhævet!

Den er loade til en php linux server
Avatar billede arne_v Ekspert
17. juni 2012 - 18:13 #16
Har du rettet setlocale som angivet?
Avatar billede dannyhare Nybegynder
17. juni 2012 - 18:24 #17
Nope, hvad skal den være på en Linux PHP Server ?
Avatar billede arne_v Ekspert
17. juni 2012 - 18:57 #18
setlocale(LC_ALL, 'da_DK');
Avatar billede dannyhare Nybegynder
17. juni 2012 - 19:08 #19
har prøvet, virker ikke !
Avatar billede arne_v Ekspert
17. juni 2012 - 20:20 #20
Hvad returnerer ucfirst(strftime('%A', time())) ?
Avatar billede dannyhare Nybegynder
17. juni 2012 - 20:26 #21
ingenting
Avatar billede arne_v Ekspert
17. juni 2012 - 21:33 #22
Der er et eller andet som ikke er som det skal vaere saa.

Men vi kan bare skifte fra navn til nummer.

<?php
$days = array('Søndag', 'Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lørdag');
$today = date('w');
for($i = 0; $i < 7; $i++) {
    if($i == $today) {
        echo "<li><b>$days[$i]</b></li>\r\n";
    } else {
        echo "<li>$days[$i]</li>\r\n";
    }
}
?>
Avatar billede dannyhare Nybegynder
17. juni 2012 - 21:48 #23
Tusinde tak! ;)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester