Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Wyłączenie panelu po określonym czasie
Forum PHP.pl > Forum > Przedszkole
honytowk
Witam chce napisać IFA który będzie mi wyłączał panel po upływie 1 oraz 2 tygodni wnioskujac z określonej daty
znalazłem taki kod na "php.net manual" w function time()

  1. <?php
  2. $nextWeek = time() + (7 * 24 * 60 * 60);
  3. // 7 days; 24 hours; 60 mins; 60secs
  4. echo 'Now: '. date('Y-m-d') ."\n";
  5. echo 'Next Week: '. date('Y-m-d', $nextWeek) ."\n";
  6. // or using strtotime():
  7. echo 'Next Week: '. date('Y-m-d', strtotime('+1 week')) ."\n";
  8. ?>


Wie ktoś jak to przerobić żeby zamiast do dzisiejszej daty dodawało mi do daty:
  1. $wejsciowa = date("d", $data['album_datestamp']);
b4x
Czekaj, czekaj - nie za bardzo rozumiem, chodzi Tobie aby do dzisiaj dodało wartość $data['album_datestamp'] tak?

  1. $dzisiaj = strtotime('today');
  2. $wejsciowa = $data['album_datestamp'];
  3. $wyjsciowa = $dzisiaj + $wejsciowa;


O to Tobie chodziło?
honytowk
chodzi mi o to zeby zamiast dzisiejszej daty date() bylo
  1. $wejsciowa = $data['album_datestamp'];

cos w stylu:

  1. <?php
  2. $nextWeek = time() + (7 * 24 * 60 * 60);
  3. // 7 days; 24 hours; 60 mins; 60secs
  4. echo 'Now: '. date('Y-m-d') ."\n";
  5. echo 'Next Week: '. date('Y-m-d', $nextWeek) ."\n";
  6. // or using strtotime():
  7. echo 'Next Week: '. $wejsciowa, strtotime('+1 week')) ."\n";
  8. ?>

(wiem ze tak nie ma byc to dla przykladu zeby pokazac o co mi chodzi)

b4x
Nadal Ciebie nie rozumiem :-) Mógłbyś trochę rozjaśnić?

  1. // Takie coś pokazałeś - czyli z tego co zrozumiałem to, to powinno być Twoim rozwiązaniem
  2. date("d", $data['album_datestamp']); // To nie wyświetli DZISIEJSZEJ daty, wyświetli z datę z timestampa
  3.  
  4.  
  5. date('d/m/Y H:i:s', $data['album_datestamp']);


A i jeśli to nie jest rozwiązaniem to mógłbyś mnie 'najaśnić' i zapodać wynik:
  1. var_dump($data['album_datestamp']);



#edit

Czekaj - może zrozumiałem Ciebie za 10 razem czytania.

Masz datę w $data['album_datestamp'] w postaci timestampa (cyfr) chciałbyś do niej dodać 1 tydzień oraz 2 tygodnie - tak?

Jeśli tak to:

  1.  
  2. $data = date('d-m-Y H:i:s', $data['album_datestamp']);
  3. $wyjsciowy = strtotime($data.' +1 week'); // Data w formie d/m/Y
  4.  
  5. // możesz zrobić tak jeszcze
  6. $wyjsciowy = $data['album_datestamp'] + (7 * 24 * 60 * 60); // gdzie 7 jest ilością dni
  7.  
  8.  
  9. // Żeby zobaczyć co 'ukrywa się' pod $wyjsciowy
  10.  
  11. print date('d/m/Y H:i:s', $wyjsciowy);
  12.  
honytowk
chce zrobić coś takiego:
  1. if($dataplus != dzisiejszadata){
  2. [url="http://www.php.net/echo"]echo[/url]"Dziala!";}else{
  3. [url="http://www.php.net/echo"]echo[/url]"niedziala!";
  4. }


Z czego: $dataplus to wynik $data['datestamp'] plus 2tygodnie

wynik var_dump:

string(10) "1259082925"

PS: ten ostatni kod co mi dales wyswietla: 08/01/1970 01:00:02
b4x
Sorki wprowadziłem Ciebie w błąd, spróbuj tego:

  1. <?php
  2. $data_plus = $data['album_datestamp'] + (14 * 24 * 60 * 60);
  3.  
  4. // Jeśli data_plus jest większe niż data obecna (czyli ważność dostępu) - wszystko działa, w innym wypadku nie będzie działać.
  5. if ($data_plus > time())
  6. {
  7. print 'Działa!';
  8. }
  9. else
  10. {
  11. echo 'Nie działa :(';
  12. }
  13. ?>
honytowk
gdzie tu moge ustawic czy 2 tygodnie czy tydzien ma dodawac?
b4x
Masz prostą funkcję:

  1. <?php
  2. /**
  3.   * Sprawdź "ważność"
  4.   *
  5.   * @param integer $data_wejsciowa - timestamp
  6.   * @param integer $waznosc_dni - ilość dni "do przodu"
  7.   */
  8.  
  9. function SprawdzWaznosc ($data_wejsciowa, $waznosc_dni)
  10. {
  11. if(($data_wejsciowa + ($waznosc_dni * 24 * 60 * 60)) > time()) return TRUE;
  12. return FALSE;
  13. }
  14.  
  15. // Przykładowe wykorzystanie
  16.  
  17. if(SprawdzWaznosc($data['album_datestamp'], 14))
  18. {
  19. echo 'Działa';
  20. }
  21. else
  22. {
  23. echo 'Nie działa';
  24. }
  25. ?>
honytowk
a co zrobic żeby obliczało mi czas waznosci jaki pozostał?

czyli np:

"pozostało: X dni"
bikerszymek
a na ciastkach tego nie mozesz zrobic? ustalasz waznosc na iles tam dni i tyle, po uplywie nie ma dostepu.
thomson89
Wystarczy nieco zmodyfikować funkcję

  1. function SprawdzWaznosc ($data_wejsciowa, $waznosc_dni)
  2. {
  3. if(($data_wejsciowa + ($waznosc_dni * 24 * 60 * 60)) > time()){
  4. $zostalo = (time()+$data_wejsciowa)-($waznosc_dni * 24 * 60 * 60);
  5. return $zostalo; //w postaci sekund
  6. }
  7. else {
  8. return FALSE;
  9. }
  10.  
b4x
  1. <?php
  2. /**
  3.   * Sprawdź "ważność"
  4.   *
  5.   * @param integer $data_wejsciowa - timestamp
  6.   * @param integer $waznosc_dni - ilość dni "do przodu"
  7.   * @param boolean $zwroc_dni - czy zwrócić ilość pozostałych dni TRUE = tak, FALSE = NIE
  8.   */
  9.  
  10. function SprawdzWaznosc ($data_wejsciowa, $waznosc_dni, $zwroc_dni = FALSE)
  11. {
  12. $waznosc = ($waznosc_dni * 86400);
  13. if(($data_wejsciowa + $waznosc) > time())
  14. {
  15. return ($zwroc_dni === FALSE) ? TRUE : round(($data_wejsciowa + $waznosc - time()) / 86400);
  16. }
  17. return FALSE;
  18. }
  19.  
  20. /**
  21.   * Przykładowe wykorzystanie
  22.   */
  23. $data['album_datestamp'] = time();
  24. // Sprawdzi czy jest "ważna" - i zwróci ilość dni pozostałych
  25. echo SprawdzWaznosc($data['album_datestamp'], 14, TRUE);
  26.  
  27. // Sprawdzi tylko czy jest ważny
  28. if(SprawdzWaznosc($data['album_datestamp'], 14))
  29. {
  30. echo 'Działa';
  31. }
  32. else
  33. {
  34. echo 'Nie działa';
  35. }
  36. ?>
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.