Autor Zpráva
Pavel015
Profil
Prosím vás.

Celý den hledám a nic přesného nemůžu najít.
Mám datum 3. 1. 2015 9:05 a potřebuju to převést na datum ve formátu: 2015-01-03 09:05:00.
Tedy - když je číslo jedno, přidá se tam nula; za 05: se přidají také nuly. Nemáte prosím nějaku funkci, která by to udělala? Vůbec mi to nejde udělat a ani sehnat... Prošel jsem celý internet :)).

Pěkný včer.
Keeehi
Profil
DateTime::createFromFormat('j. n. Y H:i', '3. 1. 2015 9:05')->format('Y-m-d H:i:s');
Pavel015
Profil
Keeehi:
Dobře a když mám {$_POST["datum"]}, jak to tam vložím?

Tohle nefunguje:
DateTime::createFromFormat('j. n. Y H:i', '$_POST["datum"]')->format('Y-m-d H:i:s');
Pavel Krátký
Profil
Pavel015:
Tohle nefunguje:
DateTime::createFromFormat('j. n. Y H:i', '$_POST["datum"]')->format('Y-m-d H:i:s');

Odstraň ty jednoduché uvozovky okolo $_POST["datum"].
Pavel015
Profil
Pavel Krátký, Keeehi:
Stejně mi to nejde.
Mám tohle:
echo DateTime::createFromFormat('j. n. Y H:i', $_POST["time_to"])->format('Y-m-d H:i:s');
Nebo jak to mám zavolat?
Lonanek
Profil
A co obsahuje proměnná $_POST["time_to"], v předchozím bylo uváděno $_POST["datum"]?

tohle je praxe.
Pavel015
Profil
Lonanek:
Čas ve formátu 7. 8. 2017 14:00

Píše mi to chybu:
( ! ) Fatal error: Uncaught Error: Call to a member function format() on boolean in C:\wamp64\www\xxx\editace-akce.php on line 217
( ! ) Error: Call to a member function format() on boolean in C:\wamp64\www\xxx\editace-akce.php on line 217


Můžete mi prosím poslat ten váš php skript, co je na tester.hys.cz?
Lonanek
Profil
Nic složité, vše tady bylo popsáno.
<?php

$datum = "3. 2. 2016 16:03";

echo "Zadaný datum je: " . $datum;
echo "<br />Převedený datum je: ";

echo DateTime::createFromFormat('j. n. Y H:i', $datum)->format('Y-m-d H:i:s');

Jakou verzi php používáte na lokálu? Určitě je verze php >= 5.5.0

Stáhněte si verzi Wampserver verze 3.0.6
Keeehi
Profil
Podle „Fatal error: Uncaught Error: Call to a member function format() on boolean in C:\wamp64\www\xxx\editace-akce.php on line 217“ je problém v tom, že funkce createFromFormat skončila chybou. Asi tam to datum neposíláš ve formátu, který jsi uvedl. Aby to neházelo chyby a jen tě to upozornilo, že tam máš špatná formát, tak se to dá přepsat takto:

if($datetime = DateTime::createFromFormat('j. n. Y H:i', $_POST["time_to"])) {
    echo $datetime->format('Y-m-d H:i:s');
} else {
    echo "Datum a čas který jste zadali <b>".$_POST["time_to"]."</b> (".strlen($_POST["time_to"]).") má špatný formát.";
}

Tento kód slouží jen pro demonstraci funkčnosti metody createFromFormat, výpis chyby totiž obsahuje XSS zranitelnost.

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: