Avatar billede straszek Praktikant
13. oktober 2002 - 20:38 Der er 3 kommentarer og
1 løsning

dansk dato formatering

Hvad skal jeg gøre ved nedenstående kode, for at den bruger '$dato' fra min mysql db til at vise datoen, istedet for som nu at finde den aktuelle via 'date'?

Mit '$dato' felt er har følgende spec. " dato int(14) NOT NULL default '0' ", og her i gemmer jeg datoer for kommende arrangementer som timestamp

kode:

<?
include("../php-lib/db_connect.php");
include("../php-lib/tagster.php");

$conn = mysql_connect("$host", "$user", "$pass");
mysql_select_db("$db");

function visdato($method = "normal") {
    $dag = date("l");    // Hent dagen
    $maaned = date("m");    // Hent mÂneden
    $dato = date("d");    // Hent datoen
    $year = date("Y");    // Hent Âret

    $maaned = $maaned -1;    // Array venlig mÂned

    $month = array (
        "januar",
        "februar",
        "marts",
        "april",
        "maj",
        "juni",
        "juli",
        "august",
        "september",
        "oktober",
        "november",
        "december"
    );

    $day = array (
        "Monday" => array ("Mandag"),
        "Tuesday" => array ("Tirsdag"),
        "Wednesday" => array ("Onsdag"),
        "Thursday" => array ("Torsdag"),
        "Friday" => array ("Fredag"),
        "Saturday" => array ("L¯rdag"),
        "Sunday" => array ("S¯ndag")
    );

    if ($dato < 10) {
        $dato = ereg_replace("0"," ",$dato);
    }

    $dag =  $day[$dag][0];

    if ($method == "normal") {
        $dag = strtolower($dag);
    }
    return "$dag d. $dato. $month[$maaned], $year";
    }


// Hent data ud
$resultat = mysql_query("select * from kalender where type='kirke' order by dato") or die(mysql_error());
while ($raekke = mysql_fetch_array($resultat)) {
      extract($raekke);
          $bgcolor = $dark ? "#dddddd" : "#eeeeee";
                      $dark = !$dark;
   
    echo "<tr bgcolor='$bgcolor'><td><font size=-2>" .  visdato(lowercase) . "<br>" . format_post2($dato_op) . "<td><font size=-2>$hvad<td>" . format_post2($hvornar) . "";
}
mysql_close($conn);

echo "</table>";

?>
Avatar billede cldu Nybegynder
13. oktober 2002 - 22:50 #1
disse to funktioner kan umiddelbart udskifte de engelske navne med danske.

function getmonthname_dk($month) {
$months = array("1" => "januar", "2" => "februar", "3" => "marts", "4" => "april", "5" => "maj", "6" => "juni", "7" => "juli", "8" => "august", "9" => "september", "10" => "oktober", "11" => "november", "12" => "december");
return $months[$month];
}

function getdayname_dk($day) {
$days = array("søndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag");
return $days[$day];
}

funktionerne bruges bedst sammen med getdate(). Eksempel:

<?php
$timestamp = time();
$dateinfo = getdate($timestamp);

$danskmaaned = getmonthname_dk($dateinfo[mon]);
$dankdag = getdayname_dk($dateinfo[wday]);
?>
Avatar billede cldu Nybegynder
13. oktober 2002 - 22:58 #2
function getdanishdate($timestamp) {
$dateinfo = getdate($timestamp);
$returnstring = getdayname_dk($dateinfo[wday])." ".$dateinfo[mday].". ".getmonthname_dk($dateinfo[mon])." ".$dateinfo[year];
return $returnstring;
}

Returnerer streng a'la "1. Februar 2002"
Avatar billede achrist Nybegynder
13. oktober 2002 - 23:03 #3
Lav en funktion som denne, der benytter MySQL's UNIX_TIMESTAMP-funktion:

function sql_syntax_timestamp_to_unix($fieldname)
{
        return " UNIX_TIMESTAMP($fieldname) ";
}
og brug den så i opbygningen af din select, som f.eks:
$sql= "SELECT  " . sql_syntax_timestamp_to_unix("timestamp_dato") . " from ...."

Den returnerede værdi kan nu formateres med strftime(), f.eks.:
$dato      = strftime('%d. %B %Y', $row[0]);

M.v.h.
Allan
Avatar billede straszek Praktikant
13. oktober 2002 - 23:08 #4
Det fatter jeg -100% af - kan i ikke bare hjælpe med det jeg spørger om?


M.v.h.

Søren
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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