uki0008
26.05.2010, 20:58:06
Witam piszę pewien mod do php-fusion.
W php dopiero raczkuje.
A więc mam pewien formularz który dodaje mi do bazy mp3, nazwa + link,
chcę żeby później jak już będę wypisywał rezultaty z bazy była też data kiedy ten wpis został dodany.
Jak to osiągnąć?
Z góry dzięki za pomoc.
Fifi209
26.05.2010, 21:12:10
Cytat(uki0008 @ 26.05.2010, 21:58:06 )

Witam piszę pewien mod do php-fusion.
W php dopiero raczkuje.
A więc mam pewien formularz który dodaje mi do bazy mp3, nazwa + link,
chcę żeby później jak już będę wypisywał rezultaty z bazy była też data kiedy ten wpis został dodany.
Jak to osiągnąć?
Z góry dzięki za pomoc.
Daj sobie pole typu: DATETIME w bazie i przy dodawaniu: użyj
NOW()
lobopol
26.05.2010, 21:13:43
Dodaj w tabeli trzymającej pliki pole z datą (np. timestamp) z defaultową wartością CURRENT_TIMESTAMP
zend
26.05.2010, 21:14:25
Lepszy timestamp bo możesz domyślne ustawić "current time" i nie będziesz się musiał przejmować NOW() w insertach
Fifi209
26.05.2010, 21:17:01
Cytat(zend @ 26.05.2010, 22:14:25 )

Lepszy timestamp bo możesz domyślne ustawić "current time" i nie będziesz się musiał przejmować NOW() w insertach

Przy wyświetlaniu będziesz później marnował czas procesora, aby timestamp zamienić na datę? ;]
zend
26.05.2010, 21:18:57
Format timestampa "2010-05-25 17:48:27"

Zawsze można usunąć ostatnie kilka znaków albo kilka pierwszych znaków i będziemy mieli to co chcemy, ale to sytułacja identyczna z datatime
Fifi209
26.05.2010, 21:22:28
Cytat(zend @ 26.05.2010, 22:18:57 )

Format timestampa "2010-05-25 17:48:27"

Zawsze można usunąć ostatnie kilka znaków albo kilka pierwszych znaków i będziemy mieli to co chcemy, ale to sytułacja identyczna z datatime

Mój błąd, zasugerowałem się UNIX_TIMESTAMP() który zwraca w sekundach.
thek
26.05.2010, 21:46:16
To ja podam jeszcze jeden myk związany z timestamp. Wcale nie musimy uciekać się do funkcji now(), czy formatowania daty w php. Wystarczy w zapytaniu użyć dla kolumny typu timestamp wartości NULL. Działa ona na tej samej zasadzie co CURRENT_TIMESTAMP i jest to cecha mocno przydatna, gdyż domyślnie nie można podczas definiowania struktury ustawić dwóm kolumnom CURRENT_TIMESTAMP, choć nieraz chcielibysmy jednej ustawić URRENT_TIMESTAMP a innej on update CURRENT_TIMESTAMP, a nie jest to niestety możliwe.
uki0008
26.05.2010, 22:20:23
Ok.
Tylko teraz otrzymuje niesformatowaną datę "20100526231659"
Jak to sformatować?
thek
26.05.2010, 22:30:00
20100526231659 -> a nie widać, że to 2010-05-26 23:16:59 ? W php masz przecież gotowce do obróbki daty.
uki0008
27.05.2010, 18:31:43
Widać

Ale jak zaznaczyłem ja dopiero zaczynam z php

Zmieniłem w bazie na DATETIME i jest ok

Witam,
niestety znowu jest problem:
W dalszym ciągu wyświetla mi datę bez formatowania.
Tak wygląda kod odpowiedzialny za wyświetlanie ($row['czas'] :
$query = "select * from electro ORDER BY id DESC";
$miejsce=1;
print "<p>Ilość utworów Electro/Haus w bazie danych: ".$num_results."</p>"; for ($i=0; $i <$num_results; $i++)
{
$zapytanie = "select czas from electro";
print "<div class='podklad'><div class='podklad_padding'>"; print "<img src='".THEME
."/images/kluka.png' style='margin-right:11px;'><a href='http://$link'>".stripslashes($row['tytul'])."</a><br>";
Nie mogę se poradzić z sformatowaniem tego.
lobopol
27.05.2010, 18:38:35
uki0008
27.05.2010, 18:50:59
Już tam byłem.
Ale jak zaznaczyłem to mój pierwszy skrypt w php i nie bardzo umiem to wykorzystać.
zend
27.05.2010, 18:59:56
Jakiej daty oczekujesz?
date( 'Y-n-d' , $row['czas']); //przykład jak używać
Edit:
Pomyliłem kolejność parametrów w funkcji

Sorry
uki0008
27.05.2010, 19:05:28
Chcę osiągnąć:
RRRR-MM-DD 00:00:00
gdy użyłem kodu podanego przez Ciebie nadal mam to samo.
zend
27.05.2010, 19:12:40
Cytat(fifi209 @ 26.05.2010, 22:17:01 )

Przy wyświetlaniu będziesz później marnował czas procesora, aby timestamp zamienić na datę? ;]
Kurcze, fifi09 pisał o tym żeby unikać formatowania przy wyświetlaniu, a Ty dalej swoje, użyj timestampa i będziesz miał to odrazu, bez formatowania i nieoptymalnego formatowania przy wyświetlaniu
uki0008
27.05.2010, 19:18:12
tz.?
W bazie mam ustawione tą kolumnę na timestampa
zend
27.05.2010, 19:23:16
Skoro masz timestampa to masz właśnie ten format o który Ci chodzi, jeśli nie, to skorzystaj z kodu który podałem wcześniej, a jeśli chcesz mieć wynik z czasem to wyszukaj w manualu
date jak formatować czas i dopisz do kodu który podałem
uki0008
27.05.2010, 21:14:39
Kombinuje tak i siak i za cholery mi to nie działa.
Jest jakiś inny sposób żeby otrzymać choć by samą datę dodania bez godziny?
zend
27.05.2010, 21:22:09
Zmień typ kolumny na DATE a w insertach date( 'Y-n-d' , time());
uki0008
27.05.2010, 21:30:10
Tylko czy to czasem nie będzie aktualna data zamiast daty dodania wpisu do bazy?
Fifi209
27.05.2010, 21:36:42
Cytat(uki0008 @ 27.05.2010, 22:30:10 )

Tylko czy to czasem nie będzie aktualna data zamiast daty dodania wpisu do bazy?
Data dodania wpisu to raczej jest aktualna data. ;p
Cytat(zend @ 27.05.2010, 22:22:09 )

Zmień typ kolumny na DATE a w insertach date( 'Y-n-d' , time());
Cytat(fifi209 @ 26.05.2010, 22:12:10 )

Daj sobie pole typu: DATETIME w bazie i przy dodawaniu: użyj
NOW()
uki0008
27.05.2010, 22:05:12
Cytat(fifi209 @ 27.05.2010, 22:36:42 )

Data dodania wpisu to raczej jest aktualna data. ;p
Ale mi chodzi raczej o to że ona uaktualnia się z datą systemową.
zend
27.05.2010, 22:15:35
Cytat(uki0008 @ 27.05.2010, 23:05:12 )

Ale mi chodzi raczej o to że ona uaktualnia się z datą systemową.

Ustaw sobie strefę czasową taka jak Ci pasuje i po problemie, zresztą wszystko korzysta z czasu systemowego więc nei wiem w czym problem, jeśli chcesz mechanizm do ustawiania daty to poszukaj o JQuery i DatePicker
Data będzie się uaktualniać tylko jak podasz nową datę w zapytaniu UPDATE
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.