použití třídy datetime ve formuláři

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
mpis
Člen | 65
+
0
-

Potřebuji ve formuláři zobrazit aktuální čas jako default hodnotu v požadovaném formátu.
Ale není možné dosáhnout toho, aby se zobrazilo správné datum a čas a dále pak v požadovaném formátu. Po zobrazení formuláře se v příslušném položce zobrazí datum 4.8.1931.
Už jsem z toho trop na tykev. Na webu jsou sice ke třídě datetime mraky informací, ale nic, co by mně odpovědělo na tento problém.
Měl by někdo nějaké řešení?

$date = new DateTime();
$form->addDate('changedt', 'Datum změny:', DateInput::TYPE_DATE)->setDefaultValue($date->format("j.n.Y H:i"))->setDisabled();
Šaman
Člen | 2666
+
0
-

Kde bereš ten addDate? Rozšíření, nebo vlastní input?
Když to máš disablovaný (předpokládám, že ho nebudeš chtít nastavovat ručně), tak klidně použij obyčejný textový input. A pokud chceš používat addDate(), tak si zjisti, co akceptuje. Umí třeba i ten čas?

mpis
Člen | 65
+
0
-

to Šaman:
Díky za odpověď.
Jak jsem hledal a zkoušel všechno možné i nemožné, tak mně toto jednoduché řešení s textovým inputem vůbec nenapadlo.
addDate je rozšíření https://componette.org/search/?….

Jan Mikeš
Člen | 771
+
+2
-

Mohu doporucit bootstrap datepicker muj kod pak (vetsinou) vypada takto:

$form->addText("date", "Datum")
	->setRequired("Datum je povinný údaj!")
	->setAttribute("class", "dtpicker")
	->setAttribute("placeholder", "dd.mm.rrrr")
	->addRule($form::PATTERN, "Datum musí být ve formátu dd.mm.rrrr", "(0[1-9]|[12][0-9]|3[01])\.(0[1-9]|1[012])\.(19|20)\d\d");

Js:

var dtpicker = $('.dtpicker').datepicker({
	format: 'dd.mm.yyyy',
	weekStart: 1,
	autoclose: true
}).on('changeDate', function(ev) {
	$(this).click().blur();
	$(this).datepicker('hide');
});

Funguje perfektne, navic i bez podpory JS, a validuje vstup od uzivatele – nedovoli nic jineho nez dd.mm.YYYY format, aby jsi s hodnotou pak mohl jednoduse pracovat:

	public function process(Nette\Forms\Form $form)
	{
		$values = $form->getValues(true);

		$values["date"] = Nette\DateTime::from($values["date"]); // Toto lze uz bez upravy ulozit do DB sloupce s typem Date i DateTime
	}