Potreboval by som porovnat dva datumy (aktualny a ulozeny v db)... je na to nejaka funkcia? Ak je datum starsi ako dnesny tak chcem zaznam z DB vymazat...
Fórum › PHP
Porovnavanie datumov
nn, musis rucne..
Sleduj mě na twitteru – @lukaschury.
Bud si skus najst nieco o type TIMESTAMP v mysql alebo ak ti nejde o datum ale len o porovnanie casov tak by sa to dalo cez date("U");
Ulozi ti pocet sekund od 1.1.1970 cize potom staci porovnat
if ($datum1> $datum2) echo "Datum1 je vacsi";
:ok:
no chcel som pouzit nieco ako date("U") lenze neviem ako mam previest na sekundy datum, ktory je ulozeny v db... ten datum uzivatel zadava pomocou formularu..a je to datum napr. nejakej akcie ktora bude v buducnosti...ale ak ten datum je uz starsi ako dnesny chcem to vymazat..
Jen ve zkratce, co potřebuješ najdeš tu http://en.wikipedia.org/wiki/Julian_date , jen si ten algoritmus přepíše? do php, pokud to má být univerzální je to asi nejlepší, zvládá to i čas, ale to už je lepší se podívat na "Julian date" na googlu. Do DB se ukládá celý(nechceš-li čas), nebo reálné číslo(desetinné místo patří času). Jistě již se sám dovtípíš, že porovnat datum je velmi snadné...int>int,real>real atd.(<,==,+..)
neviem ako mam previest na sekundy datum, ktory je ulozeny v db...
//Nacteni data z databaze
$datum = '2006-09-05';
if(time() > strtotime($datum)) {
//Neco udelat, treba smazat zaznam z db
}
no neviem sa ja z toho vymotat... ked vkladam data do db.. pouzivam na vlozenie datumu <select><option...> pre den, mesiac a rok zvlast aby mi tam uzivatelia vkladali presne ten format co chcem.. potom pouzivam fciu checkdate() a do db to vkladam asi takto:
?
MySQL_Query("INSERT INTO akcie VALUES('','$idusr','$co','$info','$kde','$den_a.$mesiac_a.$rok_a')");
mozno to je trosku divne :O ale dostanem tak napr. 8.9.2006 bez nul. Potom pouzijem tu funkciu takto:
?
$datum_akcie="$rok_a"."$mesiac_a"."$den_a";//neviem ci to je dobre ale chcel som aby mi z toho vyslo napr.8.9.2006
if(time() > strtotime($datum_akcie)){
echo"Datum, ktory si zadal je uz minulostou:)";
}
...no a nejak mi to cele nefachci...
??:error:?
//Datum napriklad takhle zformatujem, klidne by slo $datum = $den_a.'.'.$mesiac_a.'.'.$rok_a;
$datum = $rok_a.'-'.$mesiac_a.'-'.$den_a;
if(time() > (strtotime($datum) + 60*60*24)) {
echo 'Datum už je minulost';
}
else {
echo 'Datum ještě platí';
}
Jestli tento kód funguje, tak bych chybu viděl někde na špatné sestavení datumu...
$datum = '2006-09-08';
if(time() > (strtotime($datum) + 60*60*24)) {
echo 'Datum 1 už je minulost';
}
else {
echo 'Datum 1 ještě platí';
}
$datum = '2006-09-12';
if(time() > (strtotime($datum) + 60*60*24)) {
echo 'Datum 2 už je minulost';
}
else {
echo 'Datum 2 ještě platí';
}
?no v takomto formate mi to funguje.. (2006-9-9)...
=> datum nie je minulost => zaznam sa mi ulozi do db ale v tvare 9.9.2006. Po vypise zaznamov v inom php subore bude tento zaznam zajtra uz neplatny a chcem ho vymazat z db... lenze ked uz mam ten zaznam v danom formate (9.9.2006) ten isty prikaz uz nefunguje. no vyskusam sa s tym este pohrat..
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Porovnavanie hodnot — založil olgo
Porovnavanie čísel — založil Plui
Porovnávanie reťazcov — založil Kent
Porovnávanie aktuálneho času s premenou — založil bitEe.Eu
Porovnávanie riadkov súborov (10 000 a viac) — založil yterbium
Moderátoři diskuze