Autor Zpráva
Daviart
Profil
Chci převést vložené datum na počet vteřin od 1.1.1970, používám mktime(). nastal mi ale problém, na localhostu mi skript fungule tak jak má, ale jakmile jej nahraji na server, vyhazuje podivné číslo. Přesněji o dva roky a něco.

například při zadání datumu: 12. 5. 2012
localhost: 1354662000
server: 1391554800

<?php
function akcedatum ($DateReFormat)
{
    $CDate    = (str_replace(" ","",$DateReFormat)); // zbavím se mezer
    $RDate     = explode(".",$CDate); // rozdělíme to podle teček
    
    if((strlen($RDate['0'])==1)||(strlen($RDate['1'])==1)) // když datum neobsahuje dvě čísla
    {
        if(strlen($RDate['0'])==1) // den
        {
            $aDate = "0".$RDate['0']; // přidám nulu
        } else {
            $aDate = $RDate['0'];
        }
        if(strlen($RDate['1'])==1) // měsíc
        {
            $bDate = "0".$RDate['1']; // přidám nulu
        } else {
            $bDate = $RDate['1'];
        }
        $UDate = ($aDate.".".$bDate.".".$RDate['2']); // sestavím nový opravený řetězec
    } else {
        $UDate = ($RDate['0'].".".$RDate['1'].".".$RDate['2']);    // sestavým řetězec
    }
    
    $UDateC = explode(".",$UDate); // rozdělím to na dd/mm/yyyy
    
    // echo($DateReFormat." > ".$CDate." > ".$UDate." | dd:".$UDateC['0']." | mm:".$UDateC['1']." | yyyy:".$UDateC['2']."<br>"); // ukaž co to děláš
    
    return (mktime(0, 0, 0, $UDateC['0'], $UDateC['1'], $UDateC['2'])); // převede na vteřiny od 1/1/1970
}

echo(akcedatum($_GET['date']));
?>

<form action="#test" method="get">
  <label for="date"></label>
  <input type="text" name="date" id="date">
  <input type="submit" name="OK" id="OK" value="Odeslat">
</form>
Keeehi
Profil
On hlavně správný čas je 1336773600. To je totiž 12. května 2012 v sekundách.

function akcedatum ($DateReFormat)
{
    return strtotime(str_replace(" ","",$DateReFormat));
}
Daviart
Profil
Ano, nakonec jsem to na tuto funkci předělal a funguje.
Tori
Profil
Daviart:
mktime(0, 0, 0, $UDateC['0'], $UDateC['1'], $UDateC['2']) - podívejte se do manuálu, nejdřív se zadává měsíc (4.param) a až pak den (5.param). (To jen jako vysvětlení pravděpodobné příčiny chyby.)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0