Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Random dates, zlożenie w całość
Forum PHP.pl > Forum > Przedszkole
shpaque
Witam serdecznie, trochę się zagubiłem i potrzebuję pomocy. Już opisuję na czym rzeczp olega. Daty są ładowane inputem z przecinkiem (w różnym formacie dat), wiec skrypt rozladowuje daty na string i pozniej trzeba to zlozyc w calosc wg instrukcji mm/dd/yyyy, jak w wycinku ponizej, i zrandomowac:

  1. $dates = explode(',', $_POST['date']);
  2. $today = date('m/d/Y');
  3. $checkDates = array_filter($dates, function ($dates) use ($today) {return $dates < $today;});
  4. $correctDates = array_filter($dates, function ($dates) use ($today) {return $dates != $checkDates;});
  5. $countCheckDate = count($correctDates);
  6.  
  7. if ($countCheckDate == 0)
  8. {
  9. echo "<script>alert('There is no valid date!');</script>";
  10. }
  11. else
  12. {
  13. foreach ($correctDates as $date)
  14. {
  15. $dates = date('m/d/Y', strtotime($date));
  16. }
  17.  
  18. for ($i = 0; $i < $numberOfSubmissions; $i++)
  19. {
  20.  
  21. $randomDates = array_rand($dates);
  22. echo $dates[$randomDates];
  23. }
  24. }


skrypt przy dacie zwraca mi 1 zamiast daty


oj dobra maly blad:
  1. $dates = array(date('m/d/Y', strtotime($date)));


do zamkniecia smile.gif
Pyton_000
Chyba słabo wink.gif
shpaque
slabo bo cos powalilem znowu. przy tej poprawce wyswietla mi tylko jedna date, a kiedy wprowadzam 3 (w tym jedna z przeszlosci) powinnna mi tablica zwrocic dwie... :/
nospor
Tak sie zastanawiam, kiedy sie nauczysz tworzyc sensowne nazwy zmiennych...

Co do problemu: to ty masz do tablicy dodawac date a nie za kazdym razem tworzyc tablice z jednym elelementem


  1. $dates = [];
  2. foreach ($correctDates as $date)
  3. {
  4. $dates[] = date('m/d/Y', strtotime($date));
  5. }
  6.  


ps: przenosze
ps2: masz jeszcze jeden blad na poczatku skryptu ale jak zwykle go niewidzisz bo nie raczyles wlaczyc wyswietlania bledow... twoja sprawa
shpaque
dziękuję bardzo. Prawidłowy skrypt tutaj:

  1. if (($_SERVER['REQUEST_METHOD'] === 'POST') && ($_POST['action'] === 'submit'))
  2. {
  3. $numberOfSubmissions = $_POST['number'];
  4. $datesWithNoSpaces = str_replace(' ', '', $_POST['date']);
  5. $dates = explode(',', $datesWithNoSpaces);
  6. $today = date('m/d/Y');
  7. $correctDates = array_filter($dates, function ($date) use ($today) {return $date >= $today;});
  8. $countCheckDate = count($correctDates);
  9.  
  10. if ($countCheckDate == 0)
  11. {
  12. echo "<script>alert('There is no valid date!');</script>";
  13. }
  14. else
  15. {
  16. $names = ['John', 'Mark', 'Michael', 'Jane', 'Barrack', 'James', 'Naomi', 'Julian', 'Patrick', 'Thomas', 'Steve', 'Jessica', 'Victoria', 'Amelia', 'Sarah', 'Joseph', 'Linda'];
  17. $surnames = ['Wick', 'Bond', 'Snow', 'September', 'Jobs', 'Obama', 'White', 'Grey', 'Jackson', 'Doe', 'Jackson', 'Miller', 'Vosconi', 'Pepperoni', 'Freeman', 'Smith'];
  18. $ends = ['com', 'eu', 'info', 'net', 'biz', 'uk', 'us', 'org', 'de', 'pl'];
  19. $dates = array();
  20. foreach ($correctDates as $d)
  21. {
  22. $dates[] = date('m/d/Y', strtotime($d));
  23. }
  24.  
  25. function randomEmailName($length = 11)
  26. {
  27. $characters = 'abcdefghijklmnopqrstuvwxyz';
  28. $charactersLength = strlen($characters);
  29. $randomString = '';
  30. for ($i = 0; $i < $length; $i++)
  31. {
  32. $randomString .= $characters[rand(0, $charactersLength - 1)];
  33. }
  34. return $randomString;
  35. }
  36. function randomDomain($length = 7)
  37. {
  38. $characters = 'abcdefghijklmnopqrstuvwxyz';
  39. $charactersLength = strlen($characters);
  40. $randomString = '';
  41. for ($i = 0; $i < $length; $i++)
  42. {
  43. $randomString .= $characters[rand(0, $charactersLength - 1)];
  44. }
  45. return $randomString;
  46. }
  47.  
  48. for ($i = 0; $i < $numberOfSubmissions; $i++)
  49. {
  50. $randomNames = array_rand($names);
  51. $randomSurnames = array_rand($surnames);
  52. $randomEnds = array_rand($ends);
  53. $randomDates = array_rand($dates);
  54.  
  55. $phone = rand(100000000, 999999999);
  56. $randomPhone = implode(' ', str_split($phone, 3));
  57.  
  58. $mailEnd = $ends[$randomEnds];
  59. $randomEmail = randomEmailName().'@'.randomDomain().'.'.$mailEnd;
  60.  
  61. echo $names[$randomNames]." ".$surnames[$randomSurnames].", ".$randomPhone.", ".$randomEmail.", ".$dates[$randomDates]."<br>"; // Zobaczmy co się tu dzieje
  62. }
  63. }
  64. }
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.