| Autor | Zpráva | ||
|---|---|---|---|
| exec Profil * |
#1 · Zasláno: 11. 8. 2008, 20:44:17
ahoj, potreboval bych z data 4.8.2008 16:00 udelat 2008-08-04 16:00:00 v php. Jde to nejakou funkci udelat?
Predem diky |
||
| Joker Profil |
#2 · Zasláno: 11. 8. 2008, 20:46:23
Jestli to datum máte jako datum, tak s pomocí funkce date()
|
||
| exec Profil * |
#3 · Zasláno: 11. 8. 2008, 20:47:33
to datum je ulozeno v promenne $_POST["datum"]
|
||
| Joker Profil |
#4 · Zasláno: 11. 8. 2008, 20:52:10 · Upravil/a: Joker
Tak jako řetězec se to dá trochu obejít, pokud to má pevný formát:
explodovat to mezerou (tím dostanete datum a čas), datum pak explodovat tečkou, no a nakonec to zase sestavit dohromady ve správném tvaru. edit: ne split, ale explode |
||
| Taps Profil |
#5 · Zasláno: 11. 8. 2008, 20:59:20
exec
a jak s tím datem dale pracuješ, jestli je datumuložené v databázi tak ho můžeš už přímo upravit v selectu dotazu |
||
| exec Profil * |
#6 · Zasláno: 11. 8. 2008, 21:04:04
no prave ze ho chci ulozit do databaze, ale mam slouec datum v DATETIME.
Dale mam textove pole, kde uzivatel zada datum treba 4.8.2008 21:01 nebo take muze zadat 4.08.2008 21:01 popripade 04.08.2008 21:01. Potrebuju nejak zkontrolovat jestli zadane datum je platne a pak jej upravit a vlozit do databaze v tomto tvaru. chtit po uzivateli aby zadal datum ve formatu RRRR-MM-DD HH:MM se mi nezda moc vhodne. |
||
| Medvídek Profil |
#7 · Zasláno: 11. 8. 2008, 21:08:57 · Upravil/a: Medvídek
Vnut uzivateli at zada treba ve tvaru DD MM RRRR a ty už si to převedeš :)
Mam to řešený že input s datem je již předvyplněn na aktuální den ve tvaru DD.MM.RRRR a vedle je kalendář s odkazy ve taru datum.php?mesic=08099 a tím že na to kliknou se změní i input. |
||
| exec Profil * |
#8 · Zasláno: 11. 8. 2008, 21:28:27
tak dejme tomu ze donutim uzivatele aby zadal datum ve tvaru DD.MM.RRRR. Jakym zpusobem muzu zkontrolovat jestli to zadal opravdu v tomto formatu? a jak toto muzu prevest do tvaru pro databazi?
Predem dekuji. |
||
| exec Profil * |
#9 · Zasláno: 11. 8. 2008, 21:33:07
joo a jeste za tim datem musi byt cas, takze format DD.MM.RRRR HH:MM
|
||
| exec Profil * |
#10 · Zasláno: 13. 8. 2008, 21:09:02
tak jsem to nakonec vyresil, diky vsem co se mi snazili pomoct. Kdyby nekdo resil stejny problem, tak kod je tady:
function KontrolaDateTime ($dateTime)
{
$date_format = preg_replace('~^([0-9]+)\\.([0-9]+)\\.([0-9]+)~', '\\3-\\2-\\1', $dateTime); //prevede D(D).M(M).RRRR na RRRR-M(M)-D(D)
if (preg_match('/^(\d{4})-(\d{1,2})-(\d{1,2}) ([01][0-9]|2[0-3]):([0-5][0-9])$/', $date_format, $pole)) {
if (checkdate($pole[2], $pole[3], $pole[1])) {
return true;
}
}
return false;
}
if (!KontrolaDateTime("1.12.1990 10:25")){
echo "chyba";
}else{
echo "oka";}fce prevede z D.M.RRRR na RRRR-M-D, je vyuzito tolerance v mysql, ktera dovoli vlozit jak RRRR-M-D tak RRRR-MM-DD.Nakonec funkce zkontroluje delky retezce, vlozi je do pole a spravnost vyhodnoti funkce checkdate(). Je to uzasne forum s jeste lepsimi lidmi, diky vsem jeste jednou. |
||
|
Časová prodleva: 17 let
|
|||
0