| Autor | Správa |
Sunnynko
 Užívateľ
 Založený: 09.06.2011 Príspevky: 13
 | Zaslal: St 12.10.11 13:06 |   |
Zdravim, mam na vas jednu otazocku, ide o to ze potrebujem porovnat 2 datumy nacitane z databazy, teda nacitam prvy datum prebehne cyklus a ten datum sa potom ulozi do premennej $olddatum a pri dalsom nacitani porovnava $olddatum s novonacitanym datumom v premennej $datum... porovnanie v style | kód: | | if ($olddatum != $datum) ... | nefunguje...tak teda porovnavaju sa datumy nejak inak?
datumy su nacitavane vo formate YYYY-MM-DD |
| |
  |
 |
Bajzik
 Užívateľ
 Založený: 01.12.2009 Príspevky: 879 Bydlisko: Žilina Vek: 20
 | Zaslal: St 12.10.11 14:55 |   |
http://php.net/manual/en/function.strtotime.php |
_________________ PC :ASUSTeK M2A-VM, AMD Phenom X3 8650 AM2 @ 2,3 Ghz, 4 GB RAM DDR2 1800 MHz, SAPPHIRE HD 6770 VAPOR-X 1GB DDR5, 400W Zdroj, 500 GB HDD, Windows Vista 64 bit
Notebook : Asus EEEPC 1201NL, intel Atom N270 512 KB L2 Cache 533 MHz FSB @ 1,6 Ghz, 1 GB DDR2 RAM, nVidia ION, 320 GB HDD, Windows XP 32 bit
Iná technika : LG P500 (806 Mhz, Android 2.3.3 Gingerbread, root, JIT), Koss Pathfinder, kedysi iPhone =( | |
     |
 |
Sunnynko
 Užívateľ
 Založený: 09.06.2011 Príspevky: 13
 | Zaslal: St 12.10.11 15:46 |   |
| Bajzik napísal: | | http://php.net/manual/en/function.strtotime.php |
ale ja oba nacitavam z databazy, ani jeden nepouzivam aktualny... |
| |
  |
 |
miko501
 Užívateľ
 Založený: 28.04.2011 Príspevky: 159 Bydlisko: Martin
 | Zaslal: St 12.10.11 15:50 |   |
tak keď ich tam vkladáš neukladaj ich v tvare YYYY-MM-DD ako ti napísal bajzik. |
_________________ CPU:INTEL Core i3-530 2.93Ghz MB: MS-7613 VGA: Powercolor Radeon HD 6850 1GB DDR5 RAM: 2x 2GB PSU: CX600W HDD: Seagate 750GB Monitor:HP 2210i 21,5" OS: Win 7 Home Premium 64 bit Mobil: Samsung Galaxy S2 | |
  |
 |
Bajzik
 Užívateľ
 Založený: 01.12.2009 Príspevky: 879 Bydlisko: Žilina Vek: 20
 | Zaslal: St 12.10.11 15:50 |   |
strtotime prevedie dátum na číselnú hodnotu, takže $prvy = strtotime(prvy), $druhy = strtotime(druhy), potom porovnat obe a vacsie cislo = vacsi datum. Niesom si isty je to len teoreticky poznatok strtotime som pouzival iba raz  |
_________________ PC :ASUSTeK M2A-VM, AMD Phenom X3 8650 AM2 @ 2,3 Ghz, 4 GB RAM DDR2 1800 MHz, SAPPHIRE HD 6770 VAPOR-X 1GB DDR5, 400W Zdroj, 500 GB HDD, Windows Vista 64 bit
Notebook : Asus EEEPC 1201NL, intel Atom N270 512 KB L2 Cache 533 MHz FSB @ 1,6 Ghz, 1 GB DDR2 RAM, nVidia ION, 320 GB HDD, Windows XP 32 bit
Iná technika : LG P500 (806 Mhz, Android 2.3.3 Gingerbread, root, JIT), Koss Pathfinder, kedysi iPhone =( | |
     |
 |
miko501
 Užívateľ
 Založený: 28.04.2011 Príspevky: 159 Bydlisko: Martin
 | Zaslal: St 12.10.11 15:53 |   |
fúha to čo som napísal nieje moc zrozumiteľné len neviem aký tvar dátumu funkcia strtotime berie to už si pozri na tej stránke čo ti poslal ale malo by to fungovať ak bude mať správny tvar ten dátum. |
_________________ CPU:INTEL Core i3-530 2.93Ghz MB: MS-7613 VGA: Powercolor Radeon HD 6850 1GB DDR5 RAM: 2x 2GB PSU: CX600W HDD: Seagate 750GB Monitor:HP 2210i 21,5" OS: Win 7 Home Premium 64 bit Mobil: Samsung Galaxy S2 | |
  |
 |
chrono
 Skúsený užívateľ
 Založený: 13.11.2007 Príspevky: 808
 | Zaslal: St 12.10.11 16:01 |   |
| Sunnynko napísal: | | kód: | | if ($olddatum != $datum) ... | nefunguje...tak teda porovnavaju sa datumy nejak inak? | Prečo si myslíš, že to nefunguje? |
| |
  |
 |
Sunnynko
 Užívateľ
 Založený: 09.06.2011 Príspevky: 13
 | Zaslal: St 12.10.11 16:26 |   |
| chrono napísal: | | Prečo si myslíš, že to nefunguje? |
Lebo aj ked su oba datumy rovnake tak to do cyklu vojde |
| |
  |
 |
chrono
 Skúsený užívateľ
 Založený: 13.11.2007 Príspevky: 808
 | Zaslal: St 12.10.11 16:32 |   |
Nechaj si tam tie dátumy vypisovať (pretože s porovnávaním reťazcov php určite problém nemá).  |
| |
  |
 |
Sunnynko
 Užívateľ
 Založený: 09.06.2011 Príspevky: 13
 | Zaslal: St 12.10.11 16:34 |   |
| chrono napísal: | Nechaj si tam tie dátumy vypisovať (pretože s porovnávaním reťazcov php určite problém nemá).  |
Aj to som spravil a aj ked sa $olddatum != $datum pricom $olddatum bola hodota 2011-10-08 a v $datum bola hodnota 2011-10-08 tak aj tak to voslo do cyklu |
| |
  |
 |
chrono
 Skúsený užívateľ
 Založený: 13.11.2007 Príspevky: 808
 | Zaslal: St 12.10.11 16:37 |   |
Skopíruj (naozaj skopíruj, nestačí to prepísať), ten kód sem, pretože je možné, že tam je aj iný problém. |
| |
  |
 |
Sunnynko
 Užívateľ
 Založený: 09.06.2011 Príspevky: 13
 | Zaslal: St 12.10.11 17:10 |   |
| kód: | $mesacna = 0;
$denna = 0;
$sql = mysql_query("SELECT * FROM dochadzka ORDER BY Datum");
while($zaznam=MySQL_Fetch_Array($sql)){
$datum = $zaznam["Datum"];
$den = $zaznam["Den"];
$cas = $zaznam["Cas"];
$hotline = $zaznam["Hotline"];
$vykon = $zaznam["Vykon"];
if ($oldddatum != $datum) {
if ($hotline == 'Ano' && $den == 0) {
$denna = 12; }
elseif ($hotline == 'Ano' && $den != 0) { $denna = 26.4; }
else { $denna = 22.4; }
if ($cas >= '16:00:00' && $vykon == 'Servis') { $denna += 4; }
}
elseif ($cas >= '16:00:00' && $vykon == 'Servis') {
$denna += 4;}
$olddatum = $datum;
Echo ("Dna $datum je Denna $denna a Mesacna je $mesacna<br>");
$mesacna += $denna;
}
echo ("Tento Mesiac zarobis: $mesacna"); |
|
| |
  |
 |
chrono
 Skúsený užívateľ
 Založený: 13.11.2007 Príspevky: 808
 | Zaslal: St 12.10.11 17:16 |   |
V oldddatum != $datum máš jedno d navyše (a keby si si zapol zobrazovanie všetkých chýb, tak by si na to prišiel aj sám ). |
| |
  |
 |
Sunnynko
 Užívateľ
 Založený: 09.06.2011 Príspevky: 13
 | Zaslal: St 12.10.11 19:02 |   |
| chrono napísal: | V oldddatum != $datum máš jedno d navyše (a keby si si zapol zobrazovanie všetkých chýb, tak by si na to prišiel aj sám ). |
nejde o to to bol preklik ked som skusal este nejake veci...aj tak to nerobi dobre...vystup mam takyto:
| kód: | Dna 2011-10-04 je Denna 30.4 a Mesacna je 0
Dna 2011-10-05 je Denna 26.4 a Mesacna je 30.4
Dna 2011-10-06 je Denna 22.4 a Mesacna je 56.8
Dna 2011-10-07 je Denna 26.4 a Mesacna je 79.2
Dna 2011-10-08 je Denna 26.4 a Mesacna je 105.6
Dna 2011-10-08 je Denna 26.4 a Mesacna je 132
Dna 2011-10-08 je Denna 30.4 a Mesacna je 158.4
Tento Mesiac zarobis: 188.8 |
toho 8.10.2011 nema pocitat 2x26.4 ale ma pripocitat len tych 30.4... |
| |
  |
 |
chrono
 Skúsený užívateľ
 Založený: 13.11.2007 Príspevky: 808
 | Zaslal: St 12.10.11 19:21 |   |
Ak som pochopil, čo chceš dosiahnuť, tak v prípade, keď sa nezmenil dátum nemôžeš k $mesacna pripočítavať $denna (pretože tam pripočítaš viac, ako chceš). Tú premennú môžeš pripočítať len keď sa zmenil dátum (a v závislosti od toho, ako to urobíš, budeš možno musieť pripočítať tú premennú ešte aj po cykle, pretože ti v nej môže ešte ostať niečo, čo si v tom cykle do $mesacna nepripočítal). |
| |
  |
 |
|