Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Warunek dotyczący daty
kosynier8
post 8.09.2017, 16:49:33
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 8.09.2017

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


Witam
Tworzę pewien prosty system zamawiania posiłków. Posiłki na kolejny tydzień można zamawiać do czwartku włączenie. I teraz mam problem posiłki dodane do koszyka przed czwartkiem (zapisują się w bazie mysql) po wejściu do koszyka np w piątek można nadal zamówić. Kombinowałem ale coś mi nie idzie.
Proszę o pomoc - jaki warunek dodać aby takie danie już koszyku była zablokowane. Dzięki z góry za pomoc.
Go to the top of the page
+Quote Post
viking
post 8.09.2017, 17:01:36
Post #2





Grupa: Zarejestrowani
Postów: 6 378
Pomógł: 1116
Dołączył: 30.08.2006

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


http://php.net/manual/pl/function.date.php patrz format 'w'.


--------------------
Go to the top of the page
+Quote Post
sabat24
post 8.09.2017, 17:40:43
Post #3





Grupa: Zarejestrowani
Postów: 175
Pomógł: 26
Dołączył: 13.09.2007
Skąd: Gdańsk

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


Dodaj sobie kolumnę w bazie do kiedy można edytować dany posiłek w koszyku i ustaw datę na najbliższy czwartek od teraz. Następnie po wejściu w koszyk sprawdzasz, czy teraz <= do_kiedy_edytowac i jesli tak, to mozna, a jeśli nie, to nie.
Go to the top of the page
+Quote Post
Pyton_000
post 8.09.2017, 17:58:50
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Raczej datę dodania. Potem wchodząc do koszyka sprawdzasz czy posiłki dodane do koszyka spełniają warunek: różnica dni najbliższy czwartek - data dodania. Jeśli ilość dni > 7 to wywalasz to zamówienie i dajesz komunikat userowi że zamówienie się przeterminowało.

W sumie to co @sabat24 zaproponował też ma sens i chyba jest prostsze smile.gif

Ten post edytował Pyton_000 8.09.2017, 17:59:25
Go to the top of the page
+Quote Post
sabat24
post 8.09.2017, 18:07:38
Post #5





Grupa: Zarejestrowani
Postów: 175
Pomógł: 26
Dołączył: 13.09.2007
Skąd: Gdańsk

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


Tak właściwie to nie zaszkodziłyby te dwie daty, bo w razie potrzeby na podstawie daty dodania można od razu zmienić datę końca edycji, gdyby się nagle okazało, że z czwartku trzeba zrobić piątek.
Data końca edycji pozwala z kolei prostym porównaniem stwierdzić, czy użytkownik ma taką możliwość albo prostym zapytaniem usunąć wszystkie takie pozycje z koszyka.
Go to the top of the page
+Quote Post
trueblue
post 8.09.2017, 18:13:41
Post #6





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1827
Dołączył: 11.03.2014

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


A nie możesz po wejściu do koszyka informować klienta na jaki tydzień (dzień) będzie złożone zamówienie?
Jeśli będzie to piątek, to zamówienie będzie dotyczyć tygodnia następnego po najbliższym, jeśli czwartek, to tego najbliższego.


--------------------
Go to the top of the page
+Quote Post
Pyton_000
post 8.09.2017, 18:14:43
Post #7





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


A może na każdy tydzień ma inne dania wink.gif
Go to the top of the page
+Quote Post
trueblue
post 8.09.2017, 18:18:52
Post #8





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1827
Dołączył: 11.03.2014

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


To wtedy na najbliższy możliwy wynikający z kolejności rotacji.
Osobiście nie widzę od strony formalnej problemu, aby klient zamówił z takim wyprzedzeniem - to jego decyzja. Oczywiście pod takim warunkiem jak napisałem - informacji jakiego tygodnia będzie dotyczyć zamówienie.


--------------------
Go to the top of the page
+Quote Post
kosynier8
post 8.09.2017, 23:34:41
Post #9





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 8.09.2017

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


Cytat(sabat24 @ 8.09.2017, 18:40:43 ) *
Dodaj sobie kolumnę w bazie do kiedy można edytować dany posiłek w koszyku i ustaw datę na najbliższy czwartek od teraz. Następnie po wejściu w koszyk sprawdzasz, czy teraz <= do_kiedy_edytowac i jesli tak, to mozna, a jeśli nie, to nie.

Co tydzień jest inne menu. Można zamawiać na najbliższe 3 tygodnie. Dopisanie daty w bazie to jest jakaś myśl ale jak ktoś doda posiłek do koszyka nie z najbliższego tygodnia tylko 3 tyg w przód do data możliwości zamówienia na najbliższy czwartek obowiązuje tylko w przypadku pierwszego posiłku - drugi może zostać w koszyku i może być zamówiony w ciągu kolejnych 2 tygodni. Albo najprościej ustawić w cronie czyszczenie koszyków w piątek po północy wink.gif
Go to the top of the page
+Quote Post
sabat24
post 9.09.2017, 09:00:03
Post #10





Grupa: Zarejestrowani
Postów: 175
Pomógł: 26
Dołączył: 13.09.2007
Skąd: Gdańsk

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


Skoro masz datę każdego posiłku i datę do kiedy może go edytować, to nie ma problemu, by nie wyświetlać tych pozycji, których nie można po określonym czasie. W trakcie wyświetlania koszyka, możesz usuwać wpisy, które są już nieważne i/lub użyć crona jak mówisz, do czyszczenia śmieci.
Go to the top of the page
+Quote Post
kosynier8
post 12.09.2017, 09:08:29
Post #11





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 8.09.2017

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


Cytat(sabat24 @ 9.09.2017, 10:00:03 ) *
Skoro masz datę każdego posiłku i datę do kiedy może go edytować, to nie ma problemu, by nie wyświetlać tych pozycji, których nie można po określonym czasie. W trakcie wyświetlania koszyka, możesz usuwać wpisy, które są już nieważne i/lub użyć crona jak mówisz, do czyszczenia śmieci.

Zgadza się. Tylko teraz tu już bym poprosił o pomoc jak to zrobić aby do każdego posiłku dodawanego do koszyka z datą w danym tygodniu dopisać datę powiedzmy 00:00:01 piątek w tym samym tygodniu.


Nikt nie pomoże ?
Go to the top of the page
+Quote Post
Pyton_000
post 12.09.2017, 09:14:32
Post #12





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Kod
php > $da = new DateTime('friday');
php > var_dump($da);
php shell code:1:
class DateTime#2 (3) {
  public $date =>
  string(26) "2017-09-15 00:00:00.000000"
  public $timezone_type =>
  int(3)
  public $timezone =>
  string(13) "Europe/Berlin"
}


Ten post edytował Pyton_000 12.09.2017, 09:14:46
Go to the top of the page
+Quote Post
kosynier8
post 12.09.2017, 21:46:07
Post #13





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 8.09.2017

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


Chyba prościej znalazłem
  1. $piatek = date('Y-m-d', strtotime( "next friday", strtotime('2017-09-24')));
Go to the top of the page
+Quote Post

Reply to this 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: 5.07.2025 - 20:36