Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][POMOCY] Porównanie dat
Krizis
post
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 1
Dołączył: 27.07.2008

Ostrzeżenie: (0%)
-----


Witam!
Posiadam taki kod php:
  1. <?php
  2. $i=0;
  3. $file = file("admins_simple.ini");
  4.  
  5. $dated = date("d");
  6. $datem = date("m");
  7. $datey = date("Y");
  8.  
  9. foreach($file as $value) {
  10. $i++;
  11. $exp = explode(" ",$value);
  12. $expa = explode("//",$value);
  13. $expdata = explode(".",$expa[1]);
  14. echo $exp[0]."<br />".$exp[1]."<br />".$expdata[0].".".$expdata[1].".".$expdata[2]."<br />";
  15.  
  16. $i = $i-1;
  17.  
  18. $dated2 = date("d", strtotime($expdata[0]));
  19. $datem2 = date("m", strtotime($expdata[1]));
  20. $datey2 = date("Y", strtotime($expdata[2]));
  21.  
  22. if ($datey2 > $datey) {
  23. echo 'YES1';
  24. } elseif (($datey2 == $datey) && ($datem2 > $datem)) {
  25. echo 'YES2';
  26. } elseif (($datey2 == $datey) && ($datem2 == $datem) && ($dated2 > $dated)) {
  27. echo 'YES3';
  28. } else {
  29. echo 'NO';
  30. }
  31. echo '<br /><hr />';
  32. }
  33. ?>

Plik ini z którego pobiera dane:
Cytat
"STEAM_0:0:26461191" "abcdefghijklmn" //30.07.2011
"STEAM_0:0:26461192" "abcdefghijklmn" //30.05.2010
"STEAM_0:0:26461193" "abcdefghijklmn" //31.05.2012
"STEAM_0:0:26461194" "abcdefghijklmn" //24.02.2011
"STEAM_0:0:26461195" "abcdefghijklmn" //02.05.2011
"STEAM_0:0:26461196" "abcdefghijklmn" //05.07.2011

I nie wiem gdzie w kodzie jest błąd ponieważ wyświetla mi:
Cytat
"STEAM_0:0:26461191"
"abcdefghijklmn"
30.07.2011
NO
"STEAM_0:0:26461192"
"abcdefghijklmn"
30.05.2010
NO

"STEAM_0:0:26461193"
"abcdefghijklmn"
31.05.2012
NO

"STEAM_0:0:26461194"
"abcdefghijklmn"
24.02.2011
NO

"STEAM_0:0:26461195"
"abcdefghijklmn"
02.05.2011
NO

"STEAM_0:0:26461196"
"abcdefghijklmn"
05.07.2011
NO

A nie we wszystkich datach powinno być NO

Proszę o szybką pomoc... Pozdrawiam (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nekomata
post
Post #2





Grupa: Zarejestrowani
Postów: 314
Pomógł: 44
Dołączył: 12.11.2010
Skąd: UK

Ostrzeżenie: (0%)
-----


Jakbyś sobie wyprintował / wyechował daty to może byś doszedł o co chodzi ..... ale ze złośliwości ludzkiej która jest u mnie wrodzona napisze Ci rozwiązanie w taki sposób który możesz mieć problem zrozumieć.
  1. <?php
  2. $file = '"STEAM_0:0:26461191" "abcdefghijklmn" //30.07.2011
  3. "STEAM_0:0:26461192" "abcdefghijklmn" //30.05.2010
  4. "STEAM_0:0:26461193" "abcdefghijklmn" //31.05.2012
  5. "STEAM_0:0:26461194" "abcdefghijklmn" //24.02.2011
  6. "STEAM_0:0:26461195" "abcdefghijklmn" //02.05.2011
  7. "STEAM_0:0:26461196" "abcdefghijklmn" //05.07.2011';
  8. preg_match_all('#"(.*)" "(.*)" //([0-9]{1,})\.([0-9]{1,})\.([0-9]{1,})#',$file,$catched);
  9. /*
  10. Masz 6 tablic teraz w $catched
  11. 0 - cala linia
  12. 1 - steam id
  13. 2 - nick uzytkownika
  14. 3 - dzien daty
  15. 4 - miesiac daty
  16. 5 - rok daty
  17. */
  18. $dzisiaj = strtotime(date('Y-m-d'));
  19. foreach($catched[1] as $key => $value){
  20. echo $catched[2][$key].'('.$value.')';
  21. $data = strtotime($catched[5][$key].'-'.$catched[4][$key].'-'.$catched[3][$key]);
  22. echo ($dzisiaj>$data) ? ' ma ' : 'nie ma';
  23. echo 'admina.<br>';
  24. }
  25. ?>
A teraz już więcej nie proś o rozwiązanie tylko rusz głową.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 17:57