Re: PHP: hlidani formatu kalendarniho data

From: Paco (paco@seznam.cz)
Date: 28. 06. 2002, 00:15 CEST


> mate nekdo vytvorenou, nebo vite kde roste sikovna promakana funkce v PHP
> pro kontrolu datumu? Jde mi o to, aby vstupem fce bylo datum ve formatu
> dd.mm.rrrr a vystupem rrrr-dd-mm. Tohle neni tezke vyrobit pomoci fce "ereg",
> ale ja bych si predstavoval, aby to melo osetrene i situace jako napr. pri
> zadani 27.6.2002 to samo doplnilo nulu pred cislo 6 a pak prehodilo do
> rrrr-dd-mm..., nebo > vratilo jako chybu nesmyslna data (napr. 30.2.2002)
> apod.
> ...nechce se mi to delat... mate to nekdo? Diky Yd.

Nakonec mi zbyla troska casu, takze tady mas tu svoji
vytouzenou fci. Ale: skutecne chces vystup rrrr-dd-mm?
To je trochu podivnej format... Ma-li to byt rrrr-mm-dd,
tak si prehod 'm' a 'd' v date(). A taky to funguje jen
v intervalu 1.2.1970 - 19.1.2038 vcetne. Kdybys to chtel
mit univerzalni, budes muset zabrousit v manualu do sekce
Calendar functions a trosku (vic) si to prostudovat.. :)
Bacha na zalomeni.

pako Paco. 


<!-- 
<html><head><title>Title</title></head><body><br><br><br><center>
<form method=post>
Datum ve tvaru dd.mm.rrrr:
<input name=dat type=text size=12 value="<?echo isset($dat)?$dat:"";?>">
plati 1.2.1970 - 19.1.2038<br><input name=sent type=hidden value=1><br>
<input type=submit><br><br><br>
</form>
<?
error_reporting(E_ERROR);
# ---------------------------- tady mas tu tvoji fci
function mydate($dt){
	$dt=trim($dt);
	if(!ereg("^([012][0-9])|[1-9]\.([01][0-9])|[1-9]\.[0-9]{4}$",$dt)) return false;
	list($d,$m,$y)=explode('.',$dt);
	if(!checkdate($m,$d,$y)) return false;
	return date("Y-d-m",mktime(0,0,0,$m,$d,$y));
}
# -----------------------------------------------
if($sent){
	$okdat=mydate($dat);
	echo"Ve tvaru rrrr-dd-mm: <b>";
	echo $okdat?$okdat:"Chybny vstup","</b>";
}
?>
<br></body></html>
-->


______________________________________________________________________
Reklama:
Nejenom anglicko-cesky slovnik: http://slovnik.seznam.cz



This archive was generated by hypermail 2.1.2 : 28. 06. 2002, 00:16 CEST