Print out custom name of the month in php

426 views Asked by At

I can't figure it out! I've created an array of months in "Slovenian language" and now, I would want to display my month's name instead of the number. Instead of working, it writes out - 32014vEurope/Berlin11bEurope/BerlinWed and some more weird stuff, it should obviously print out November in my case. I would like to solve this problem with arrays, but It just wouldn0t convert the number of 'n' to the requested month.

function kliknjena($link, $mojster)
{
    $meseci[1] = "Januar";
    $meseci[2] = "Februar";
    $meseci[3] = "Marec";
    $meseci[4] = "April";
    $meseci[5] = "Maj";
    $meseci[6] = "Junij";
    $meseci[7] = "Julij";
    $meseci[8] = "Avgust";
    $meseci[9] = "September";
    $meseci[10] = "Oktober";
    $meseci[11] = "November";
    $meseci[12] = "December";

    $sql = "SELECT naslov, podnaslov, vsebina, ustvarjeno, slug FROM novica
            where slug = '$mojster'
            limit 1";
    $result = mysqli_query($link, $sql);

    if (mysqli_num_rows($result) > 0) 
    {
        while($row = mysqli_fetch_assoc($result)) 
        {

            echo "<h1>".$row["naslov"]."</h1>";
            $timestamp = strtotime($row["ustvarjeno"]);
            $m = date("n", $timestamp);
            echo date("d. $meseci[$m]; Y, H:i:s", $timestamp);
            echo "<p>".$row["podnaslov"]."</p>"."<br>";
            echo "<p>".$row["vsebina"]."</p>"."<br>";
        }
    } 
    else 
    {
        echo "0 results";
    }
}
1

There are 1 answers

0
Barmar On BEST ANSWER

Use:

echo date('d. ', $timestamp) . $meseci[$m] . date('; Y, H:i:s', $timestamp);

What's happening is that the month name is being substituted into the date() argument, and then all the letters in the month are being treated as formatting characters, so they get replaced with the corresponding fields from the date and time.