![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 27.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Jak w prosty sposób uzyskać godzine w formacie HH:MM:SS po dodaniu do niej np 45 min?
np. 12:45:00 + 45 min = 13:30:00 Dodatkowo potrzebuje dowiedzieć się jak zrobić zeby przenosilo mi rekordy w ktorych upłyneła okreslona data i czas : NP
i np jak bedzie 16:45 to serwer sam przeniesie mi rekord do takiej samej tabeli ale o nazwie archiwum |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Co do pierwszego pytania to: http://pl.php.net/strtotime
Co do drugiego, jestem zbyt cienki w uszach. Ten post edytował Damonsson 16.09.2010, 17:34:05 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 763 Pomógł: 117 Dołączył: 15.03.2010 Skąd: void Ostrzeżenie: (0%) ![]() ![]() |
Może dokończę...
Rekordy same z siebie się nie usuną... Musisz stworzyć do tego skrypt. Niestety skrypt też sam o danej godzinie się nie wywoła więc rozwiązania są 2: 1. Jeśli serwer ma opcję Cron (możliwość uruchomienia harmonogramu zadań co godzinę/dzień/tydzień itp...), a tu już sprawa jest rozwiązana - Cron sam wykona skrypt o określonej porze ![]() 2. Dodasz zapytanie DELETE, które przy ładowaniu strony przez kogokolwiek będzie kasować stare rekordy (dasz klauzulę, że kasowane będą tylko te rekordy, które utraciły ważność... czyli np. now() - 12h <TO JEST TYLKO WYTŁUMACZENIE, A NIE CZĘŚĆ ZAPYTANIA> ... - jeśli nie mieszczą się w tym przedziale skrypt usuwa je z bazy... OCZYWIŚCIE SKRYPTU CI NIE PODAM CHOĆ ZNAM :] POSZUKAJ SAM. Wiesz czego szukać ![]() Pozdrawiam. Ten post edytował modern-web 16.09.2010, 18:43:59 -------------------- Pomogłem? Kliknij `Pomógł`. To nic nie kosztuje, a mnie usatysfakcjonuje! ;)
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 306 Pomógł: 32 Dołączył: 20.01.2008 Ostrzeżenie: (20%) ![]() ![]() |
Ja od siebie dodam jeszcze, że przechowywanie dat i czasu tak jak ty to robisz (w postaciach YYYY-MM-DD i HH:MM:SS) jest bezsensowne i nieoptymalne.
Lepiej przechowuj czas jako znacznik czasu (tworzysz tylko jedno pole INT(10) + SQL ma bardzo fajną funkcję do pokazywania aktualnego znacznika czasu: UNIX_TIMESTAMP()), wtedy nie musisz się bawić w żadne dodawanie 45 minut do danej godziny, bo do znacznika czasu dodajesz po prostu odpowiadającą ilość sekund (tak tak, robisz zwykłe dodawanie, a nie jakieś bzdurne operacje na stringach itd.) -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 763 Pomógł: 117 Dołączył: 15.03.2010 Skąd: void Ostrzeżenie: (0%) ![]() ![]() |
Ja bym się kłócił... ^^
Jeśli chcesz uzyskać precyzyjną datę to jak najbardziej DATETIME... Ale faktycznie... UNIX_TIMESTAMP()) jest o wiele wygodniejszy ![]() -------------------- Pomogłem? Kliknij `Pomógł`. To nic nie kosztuje, a mnie usatysfakcjonuje! ;)
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 306 Pomógł: 32 Dołączył: 20.01.2008 Ostrzeżenie: (20%) ![]() ![]() |
Ja bym się kłócił... ^^ Jeśli chcesz uzyskać precyzyjną datę to jak najbardziej DATETIME... Ale faktycznie... UNIX_TIMESTAMP()) jest o wiele wygodniejszy ![]() DATETIME i UNIX_TIMESTAMP różni tylko forma zapisu danych do bazy. A operacje na znaczniku czasu są o wiele prostsze ![]() -------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 2 Dołączył: 17.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Na DATETIME są równie proste ... ADDDATE(data, INTERVAL 2 DAYS) - nie ma potrzeby działania na stringach. Poza tym pozostają np. działania gdy chcesz kolumnę z datami sprawdzić na np. tylko miesiące danego roku. Przy unixowych znacznikach będzie to trudniejsze niż WHERE LEFT(data, 7) = "2010-08".
Każdemu według potrzeb Panowie ![]() |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 27.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
dobra poradziłem sobie teraz pytanie jak porównywać godziny co do wielkosci np
jesli np 12:30:00 mniejsza od 12:40:00 wejdzie do ifa ![]() |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 2 Dołączył: 26.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy dobrze zrozumiałem, ale jeśli użyjesz wyżej wymienionej funkcji to po prostu patrzysz która wartość ma więcej sekund...
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 1.05.2025 - 05:59 |