![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 298 Pomógł: 0 Dołączył: 10.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam pytanie jak zrobić, aby skrypt załóżmy co 5 dni wysyłał powiadomienia mam w bazie zapisane 5 dni wiem, że to się opiera na if ale nie wiem czy musze dać to w ten sposób Czy w dobrym kierunku idę(IMG:style_emoticons/default/questionmark.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
W złym. Sprawdzałeś co zwraca funkcja date?
Pomyśl wpierw co to znaczy "co 5 dni" - czy dziś powinno być wysłane powiadomienie, czy może jutro albo pojutrze. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 298 Pomógł: 0 Dołączył: 10.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
I według Ciebie jeśli dziś, za 5 dni, 10, 15, itd. oraz jutro, za 5 dni od jutra, itd., to będzie ok?
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 298 Pomógł: 0 Dołączył: 10.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Jeszcze raz.
Jeśli wyślę dziś (30), 4.2.2022, 9.2.2022, 14.2.2022, itd., to będzie ok? Czy może jeśli wyślę jutro (31), 5.2.2022, 10.2.2022, 15.2.2022? |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
viking,
Twoje rozwiązanie jest błędne - problemem jest przełom miesiąca. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Wiem, ale zależy jak dokładnie chce to zrobić. Ja bym i tak poszedł (jeśli to np mysql) w eventy na bazie (starts x, every 5 days). Chyba że też zapisuje w bazie ostatnią czynność i od niej ma być liczone 5 dni ale to już w ogóle nie problem.
Ten post edytował viking 30.01.2022, 11:20:04 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 298 Pomógł: 0 Dołączył: 10.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
W bazie zapisuje date dnia zapisu i 5 dni ma odliczać od daty zapisania żądania o wysyłanie powiadomień
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
No więc już wiesz, że musisz mieć jakiś punkt odniesienia, aby wysyłać co 5 dni.
Musisz obliczyć różnicę (w dniach) pomiędzy tym punktem odniesienia, a dniem aktualnym. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 298 Pomógł: 0 Dołączył: 10.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Różnica między datą zapisu, a datą aktualną.
Gdzie w Twoim kodzie jest data zapisu? |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 298 Pomógł: 0 Dołączył: 10.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Jesteś bliżej.
Teraz należałoby poszukać w internecie jak się odejmuje daty, albo jak znaleźć różnicę, bo na pewno stringów nie można odejmować. |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 298 Pomógł: 0 Dołączył: 10.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
Jesteś bliżej. Teraz należałoby poszukać w internecie jak się odejmuje daty, albo jak znaleźć różnicę, bo na pewno stringów nie można odejmować. Znalazłem taki przykład
I na nim się będę wzorował |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Super, nadal twierdzę aby zapisywać w bazie danych datę jako liczba ( timestamp ).
Można zapisać daty w bazie danych ale potem trzeba je konwertować. Zamień datę now() na timestamp i zapisz jako zwykłą liczbę ( w bazie danych jako int ). Potem przelicz, ile sekund mieści się w 5 dniach ( google 5 dni ile to sekund: 432000 sekund ) - i możesz do daty z bazy danych dodawać lub odejmować "5 dni w sekundach". W twoim przypadku: data w bazie danych to czas ostatniej akcji, więc robisz warunek:
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 10:06 |