Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Closed TopicStart new topic
> Problem z data
intertom
post 20.12.2004, 18:59:51
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 20.12.2004

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


Wpsuje do tabeli date Wysylki Produktu (varchar) jesli termin wysylki zostanie przekroczony powinna sie ta data ukazac na czerwono.
Zrobilem to tak:

<?php

$date = date("d.m.Y");

if ($date < $row_ALL['WYSYLKA']) {
echo ("<font color='red' size='2'>".$row_ALL['WYSYLKA']."</font>");
}
else {
echo $row_ALL['WYSYLKA'];
}
?>

Problem polega na tym ze przy tym formacie zapisu Daty (dzien, miesiac, rok)
to niefunkcjonuje. Czy jest jakas mozliwosc przekrecenia daty (rok, miesiac, dzien) zanim zostanie urzyta petla if.

---

hwao
Go to the top of the page
+Quote Post
Ar2r
post 20.12.2004, 19:13:33
Post #2





Grupa: Zarejestrowani
Postów: 140
Pomógł: 16
Dołączył: 12.06.2002
Skąd: Kielce

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


Gdzie chcesz tą datę przekręcać: w zmiennej $date czy przed wpisaniem do tabeli?
Go to the top of the page
+Quote Post
M4chu
post 20.12.2004, 19:22:01
Post #3





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 28.09.2003
Skąd: Rzeszów

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


ja date zawsze trzymam w formacie unix timestamp (aktualna zwraca funkcja time(), wiecej w manualu), w mysqlu mozna trzymac to w polu timestamp - poprostu latwiej sie porownuje wartosci.
  1. <?php
  2.  
  3. $data = time();
  4.  
  5. if( $data < $row['wysylka'] )
  6. {
  7. echo '<font color=\"red\" size=\"2\">' . date( 'd.m.Y', $row['wysylka'] ) . '</font>';
  8. }
  9. else
  10. {
  11. echo date( 'd.m.Y', $row['wysylka'] );
  12. }
  13.  
  14. ?>


Ten post edytował M4chu 20.12.2004, 19:22:28
Go to the top of the page
+Quote Post
intertom
post 20.12.2004, 19:25:24
Post #4





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 20.12.2004

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


W tabeli musi byc zapisywana w formacie (d,m,Y) Problem w tym ze w tym formacie porownywane sa najpierw dni daty, i jesli dzisiaj mamy 20.12.2004 a Data wysylki bedzie np.: 19.01.2005 to i tak ukaze sie na czerwono poniewaz 19 jest mniejsze od 20. Dlatego chce przekrecic te date (string) na Y,m,d. Wtedy bedzie funktionowac poniewaz bedzie porownywyna rok, miesiac na koncu dzien.
Go to the top of the page
+Quote Post
Vertical
post 20.12.2004, 19:46:33
Post #5





Grupa: Zarejestrowani
Postów: 848
Pomógł: 0
Dołączył: 7.07.2004
Skąd: Wrocław

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


To może str_replace ?
Można zrobić
  1. <?php
  2. $stare = array(
  3. 'd', 'm', 'Y');
  4. $nowe = array(
  5. 'Y', 'm', 'd');
  6. str_replace($stare, $nowe, $data);
  7. ?>
Go to the top of the page
+Quote Post
Ar2r
post 20.12.2004, 19:59:50
Post #6





Grupa: Zarejestrowani
Postów: 140
Pomógł: 16
Dołączył: 12.06.2002
Skąd: Kielce

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


Dla formalności: podany przez Ciebie przykład akurat nie jest prawdziwy.
Warunek masz następujący:
$date<$row['wysylka']
Skoro dziś mamy 20, a wysyłka planowana na 19 to nawet przy porównaniu samych dni warunek nie jest prawdziwy i zawartość if się nie wykona.
Skoro musisz mieć datę w takim formacie przed porównaniem tak jak pisze M4chu zamieniaj ją na uniksowy znacznik czasu przy pomocy mktime i porównuj.
Go to the top of the page
+Quote Post
hwao
post 20.12.2004, 20:13:42
Post #7


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Zamykam
Nie wykonanie mojej prozby przez intertom, przykro mi.

Jak napiszesz na pw czego nie zrobiles to odblokuje
Go to the top of the page
+Quote Post

Closed TopicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 14:37