Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: auckje sposob na date i mysql-a
Forum PHP.pl > Forum > PHP
boya
Witam

Zastanawialem sie jak najlatwiej i najlepiej stawiac aukcje, jaki tym danych dac w mysql-u. I jak to wszystko policzyc.

Ja wybralem typ danych datetime, ale nie wiem czy to dobra droga i czy jest jakies wsparcie ze strony sql zeby policzyc np:

Kod
data_start = 2006-05-20 14:03:33
czas trwania = 14 dni
data zakonczenia = ?
przeliczyc w jakis sposob ? te 14 dni na typ datetime

2006-05-20 14:03:33(data_start) + przeliczone_14_dni = czas konca w formacie datetime


nie wiem czy to dobre rozwiazanie ?
bede wdzieczny z a ujawnienie waszych pomyslow albo poprawe mojego...
ave
  1. INSERT
  2. INTO tabela
  3. SET data_start = '2006-05-20 14:03:33', czas trwania=14, data_end=data_start+INTERVAL 14 DAY
MrGhost
Proponuję czas wstawiać w pole typu INT.
Czas w znaczniku UNIX-owym, czyli

time();

Myślę, że to najlepsze rozwiązanie. Czas przechowowany w takiej postaci można łatwo formatować i operować na nim.

Date Start: time()
Date End: time()+86400*14; // gdzie 86400 - ilość sekund w jednej dobie

Czas taki można łatwo skonwertować:

strftime ("%d-%m-%Y %H:%M:%S", time());

Więcej można znaleźć w manualu php.
boya
wybrałem droge ave...i będąć konsekwentny napotkałem kolejny problem...

chce sobie policzyc ile dni zostalo do konca aukcji
wiec w cywilizowany sposob powinienem zrobic to tak:

  1. <?php
  2. $zapytanie = "SELECT ((data_koniec - NOW()) / INTERVAL 24 HOUR) as czas_do_konca, data_koniec, data_czas FROM aukcja
  3. ?>


jednak takie cos wysypuje sie z bledem worriedsmiley.gif jezeli ktos ma pomysl jak to rozwiazac...bardzo dziekuje
boya
wyciagnolem to z manula, jednak nawet to co tam napisane nie chce ruszyc ;/

  1. $zapytanie = "SELECT CONCAT(DAYOFYEAR(date1)-DAYOFYEAR(NOW()),' days ', DATE_FORMAT(ADDTIME("2000-00-00 00:00:00",SEC_TO_TIME(TIME_TO_SEC(date1)-TIME_TO_SEC(NOW()))),'%k hours and %i minutes')) AS time aukcja WHERE id='".$_POST['nraukcja']."'";
  2. $wykonaj = mysql_query ($zapytanie);
  3. $krotka = @mysql_fetch_array ($wykonaj);


Parse error: parse error, unexpected T_LNUMBER in ... on line 45

moze to ktos sprawdzic na mysql 4 ?
AxZx
ale ty chyba masz problem z php a nie mysql
popraw ' i "
bo z tym sa klopoty juz widac to tutaj na forum.
dr_bonzo
Jak dzisiaj zauwazylem forum dziwnie traktuje ' " \" \' czasami cos obetnie, pozmienia kod.

boya: wrzuc kod na http://phpfi.com/
nitro18
a ja używam strtotime

np. strtotime("2006-08-19 12:00:01);
lub strtotime("2006-08-19 12:00);
bim2
uzyj time() 10xwygodniejsze a potem liczysz sobie odejmowaniem a nie jakimiś kombinacjami. Wyświetlasz np. date("Y:m", time()) bardzo proste to jest a nie kombinator.
nitro18
ta jasne 10x chyba do d*
bim2
Każdy myśli co innego, ale z doświadczenia powiem Ci, że to jest wygodniejsze i szybsze. Jeszcze jak zapiszesz np. do zmiennej format daty to potem łatwo w całym serwisie zmienisz jej format
nitro18
ja już tak to strtotime(date("Y-m-d H:i:s"));

może dłuższy ale można póxniej go sformatować do zwykłej daty date("d-m-y H:i:s" $znacznik); lub y-m-d

nauczyłem się tej funkcji i jest ona w wielu moich skryptach i dobrze działa.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.