Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak obliczyć datę - dwa tygodnie do tyłu od
Forum PHP.pl > Forum > PHP
miedzna
Jak w temacie, mamy na przykład datę 22.2.2006 i jak wyliczyć datę 2 tygodnie do tyłu od tej daty i żeby była w postaci 8.2.2006 ?

Dzięki i pozdrawiam
nospor
do dodawania lub odejmowania sluzy strtotime.
Do formatowania: date
reszta nalezy doCiebie
miedzna
A jak ten czas UNIXowy 1815688800 zamienić teraz na datę w formacie d-m-rrrr?
nospor
Czy ja niewyraźnie piszę?
Cytat
Do formatowania: date
Kshyhoo
To chyba jakoś tak:
  1. <?php
  2. // aktualna data
  3. $data = date("Y-n-j");
  4.  
  5. echo "$data<br>";
  6.  
  7. // zamiana daty na znacznik czasu
  8. $d1 = strtotime($data);
  9.  
  10. // 20 dni jako znacznik czasu (60*60*24*20)
  11. $d2 = 1728000;
  12.  
  13. $d = $d1 - $d2;
  14.  
  15. // format nowej daty
  16. $nowa_data = date("Y-n-j", $d);
  17. $nowa_data_odw = date("j-n-Y", $d);
  18.  
  19. echo "$nowa_data<br>";
  20. echo "$nowa_data_odw";
  21.  
  22. ?>
nospor
@ksyhoo:
nie poto podalem linki do manuala bys teraz do wawy przez chiny szedl.
ten kod
  1. <?php
  2.  
  3. // zamiana daty na znacznik czasu
  4. $d1 = strtotime($data);
  5.  
  6. // 20 dni jako znacznik czasu (60*60*24*20)
  7. $d2 = 1728000;
  8.  
  9. $d = $d1 - $d2;
  10. ?>

zastepuje sie:
  1. <?php
  2.  
  3. $d = strtotime('-20 day',strtotime($data));
  4.  
  5. ?>

czytac, czytac i jeszcze raz czytac manuala. zycie bedzie prostrze
miedzna
@nospor: nie denerwuj się, spokojnie smile.gif

jeżeli mogę, to jeszcze jedno pytanko, dlaczego jak w tym kodzie:
  1. <?php
  2. $data = date("Y-n-j");
  3. echo date("j-n-Y", strtotime('-14 day',strtotime($data)));
  4. ?>


format daty w zmiennej $data zamienię z Y-n-j na d-m-Y (bo w takim formacie jest wyciągana data z bazy) to już źle liczy 14 dni do tyłu?
nospor
Cytat
@nospor: nie denerwuj się, spokojnie
Ja jestem czlowiek nadwyraz spokojny i sie nie denerwuje. Ale jak trzeba to nakrzycze. Dzieki temu moze na ludzi wyjdziecie smile.gif

Cytat
format daty zamienię na d-m-Y to już źle liczy 14 dni do tyłu?
Glupoty gadasz smile.gif. Dziala dobrze. Dopiero co testowalem. Tylko wiesz, ze to co podales cofa cie o dwa tygodnie od dzisiaj
miedzna
Cytat(nospor @ 2006-01-02 16:34:55)
Glupoty gadasz smile.gif. Dziala dobrze. Dopiero co testowalem. Tylko wiesz, ze to co podales cofa cie o dwa tygodnie od dzisiaj.

A właśnie że nie, spróbuj ten kod, w zmiennej $data zmieniłem format na d-m-Y i pokazuje mi 15-06-2007 smile.gif

  1. <?php
  2. $data = date("d-m-Y");
  3. echo date("d-m-Y", strtotime('-14 day',strtotime($data)));
  4. ?>
nospor
Hej cwaniaczku, ty kod zmieniles. ja testowalem ten pierwszy co pokazales tongue.gif
Tutaj nic dziwnego ze ci nie dziala, gdyz strtotime przyjmuje date w formacie Y-m-d
miedzna
No i tu mam problem, gdyż w bazie mam daty w formacie d-m-Y sad.gif co robić? Zmieniać tego nie będę bo jest tego dużo a muszę obliczyć dla każdej daty w bazie które są zapisane w formacie d-m-Y datę dwa tygodnie wstecz.
tiraeth
  1. <?php
  2. $data = date('d-m-Y');
  3. list($d, $m, $y) = explode('-', $data);
  4. $data = $y . '-' . $m . '-' . $d;
  5.  
  6. echo date("d-m-Y", strtotime('-14 day',strtotime($data)));
  7. ?>


Ciężko użyć explode?
ennics
Kod
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d')
mk768
proponuje
$data_tyl = date("d-m-Y", mktime('0','0','0', date(d)-20, date(m),date(Y)));
wyciagnac date z bazy i porownac
proste i dziala bez pudla
Zajec
Kolejna, tym razem moja propozycja ;-)

Przekonwertować zapisane daty w bazie za pomocą jednego skryptu i gotowe. Ale tym razem uzyc oczywiście pola "date".
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.