![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 106 Pomógł: 5 Dołączył: 5.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Mam datę z godziną w bazie MySQL. Chciałbym, aby skrypt:
Mile widziane chociaż w części podane na tacy, bo w kwestii mierzenia czasu w PHP jestem zieleńszy niż polna trawa (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif) Całość ma mniej-więcej zastąpić cron-a (dane byłyby odpowiednio aktualizowane przed wyświetleniem właśnie w wywołanej funkcji). |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 675 Pomógł: 286 Dołączył: 15.06.2009 Skąd: Wieliczka Ostrzeżenie: (0%) ![]() ![]() |
nie określiłeś się jasno
Cytat •Zliczył ile między podaną datą i godziną minęło odstępów pomiędzy jakąś datą a teraz czy pomiędzy 2 datami? |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 385 Pomógł: 26 Dołączył: 22.03.2008 Skąd: TM Ostrzeżenie: (0%) ![]() ![]() |
1. Chodzi Ci o to ile czasu mineło między jedną datą a drugą?
2. Nadpisanie w bazie to UPDATE.. Powiedz coś więcej o tym 1 punkcie.. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 106 Pomógł: 5 Dołączył: 5.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
1. Tak, między datą w bazie a obecną(serwera) i mają być to tylko pełne odstępy $n-minutowe
2. Chodziło mi o to, żeby nie używać SET data=NOW() (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 575 Pomógł: 299 Dołączył: 26.03.2009 Ostrzeżenie: (20%) ![]() ![]() |
mktime" title="Zobacz w manualu PHP" target="_manual, time" title="Zobacz w manualu PHP" target="_manual
@Pawel_W Nie dawaj mu gotowców. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 106 Pomógł: 5 Dołączył: 5.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy dobrze kombinuję, ale ja bym to widział tak:
Najpierw obliczyć różnicę w sekundach tych dwóch dat (nie wiem jak mysqlowy "datetime" zmienić w liczbę sekund). Następnie podzielić tę różnicę przez moje $n*60 i iloraz potraktować floor()-em. Pętlą for() zakręcić tyle razy, ile wyniósł mój iloraz po odcięciu części ułamkowej. Do daty pobranej z bazy dodać iloraz pomnożony przez $n*60. Przekonwertować tę datę na datetime i zapisać do bazy. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 744 Pomógł: 118 Dołączył: 14.02.2009 Skąd: poziome Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 106 Pomógł: 5 Dołączył: 5.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Tędy? (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif) Kolumna z czasem w bazie to updatetime Ten post edytował messmaker 27.06.2009, 22:25:15 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 744 Pomógł: 118 Dołączył: 14.02.2009 Skąd: poziome Ostrzeżenie: (0%) ![]() ![]() |
1. Napisz dokladnie co chcesz zrobic
2. time_to_sec - to funkcja mysql nie mozej jej sobie zmienic na sekundy jesli juz to: time_to_sec(TIMEDIFF(now(), '2009-06-27 22:52:47')) as sekundy 3. minuty mozna uzyskac tak SELECT floor(time_to_sec(TIMEDIFF(now(), '2009-06-27 22:52:47'))/60) as minuty |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 106 Pomógł: 5 Dołączył: 5.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
całkiem się pogubiłem jak to zrobić (IMG:http://forum.php.pl/style_emoticons/default/ohmy.gif)
Chcę wywołać daną funkcję tyle razy, ile od daty w bazie minęło pełnych okresów o długości $n minut każdy, a następnie zapisać w bazie datę powiększoną o "zaliczone" odstępy. Przykładowo: w bazie mamy datę 55 minut wstecz od aktualnej $n=10; na wyjściu potrzebuję: $a=5 (oznaczającą, że od daty w bazie minęło 5 pełnych okresów 10 minut każdy) i update bazy ustawiający datę na 5 minut wstecz od aktualnej (czyli stara + 50 minut) ---EDIT--- Szkoda, że nikt nie potrafił/nie chciał pomóc. Poradziłem sobie z uniksową notacją i w bazie przechowuję liczbę sekund od 1/1/1970. Mam nadzieję, że projekt nie wybuchnie 7/2/2106. Mimo wszystko dziękuję, szczególnie maly_swd Ten post edytował messmaker 28.06.2009, 16:34:33 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 744 Pomógł: 118 Dołączył: 14.02.2009 Skąd: poziome Ostrzeżenie: (0%) ![]() ![]() |
Ja to dopiero wstalem i nie mialem wczoraj czasu odpisac:)
mozna i tak jak piszesz... pozdrawiam |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 19:26 |