konto usunięte

Temat: Operacje na dacie

Witam,
Chciałbym wyświetlić obok komentarza coś takiego, że:

dodano 5 minut temu
dodano 17 godzin temu

Jak mogę takie coś wykonać?

konto usunięte

Temat: Operacje na dacie

ja bym użył operatorów matematycznych oraz funkcji drukowania znaków na ekranie.

np. echo slownie([data_teraz] - [data napisania]);

wez tylko jeszcze pod uwage rozne strefy czasowe.
Marcin Tarapata

Marcin Tarapata Analityk/Tester

Temat: Operacje na dacie

Data to chyb pobierana jest z serwera, więc co do tego mają strefy czasowe?

Chyba, że serwer stoi np w Nowej Zelandii ;)

konto usunięte

Temat: Operacje na dacie

Marcin Tarapata:
Data to chyb pobierana jest z serwera, więc co do tego mają strefy czasowe?

gdy bedziesz miec uzytkownikow portalu z roznych czesci swiata to bedziesz wiedziec co to ma do rzeczy :)
Adrian Pastuszek

Adrian Pastuszek Specjalista PHP,
Rybnik, Śląsk,
Zdalnie

Temat: Operacje na dacie

jeżeli masz date w bazie danych, najłatwiej/najszybciej jest pobrać różnicę właśnie z bazy... Oczywiście, jeżeli pole gdzie zapisana jest data jest polem date/datetime/timestamp....
Łukasz C.

Łukasz C. Senior Technical
Architect

Temat: Operacje na dacie

timestamp na format uniksowy, odejmujesz od aktualnego time() i:
modulo 60 - liczba minut, modulo 3600 liczba godzin itd, proste jak budowa cepa :PŁukasz Cepowski edytował(a) ten post dnia 11.01.09 o godzinie 16:30

konto usunięte

Temat: Operacje na dacie

Dziękuje. Zabieram się do roboty.
Piotr Stanek

Piotr Stanek Programista PHP /
JS developer

Temat: Operacje na dacie

moze się przyda:

function smarty_modifier_timenice($time)
{
$now = time();
if ($time > $now) {
echo 'Podana data nie może być większa od obecnej.'; // tutaj była 'zła data'
return;
}
$diff = $now - $time;

$minut = floor($diff/60);
$godzin = floor($minut/60);
$dni = floor($godzin/24); if ($minut = 2 && $minut = 22 && $minut = 32 && $minut = 42 && $minut = 52 && $minut 6 && $godzin < 24) {
return "Dzisiaj ".date("H:i:s", $time);
}
elseif ($godzin > 0 && $godzin < 24) {
$restMinutes = ($minut-(60*$godzin));
switch($restMinutes)
{ case 0: $res = null; break;
case 1: $res = "Minutę temu"; break;
case ($restMinutes >= 2 && $restMinutes = 22 && $restMinutes = 32 && $restMinutes = 42 && $restMinutes = 52 && $restMinutes = 24 && $godzin 7 && $dni < 14): return "Ponad tydzień temu, ".date("Y.m.d H:i", $time); break;
case 14: return "Dwa tygodznie temu, ".date("Y.m.d H:i", $time); break;
case ($dni > 14 && $dni < 30): return "Ponad 2 tygodnie temu, ".date("Y.m.d H:i", $time); break;
case 30: case 31: return "Miesiąc temu"; break; case ($dni > 31): return date("Y.m.d H:i", $time); break; }
return date("Y.m.d H:i", $time);
}Piotr Stanek edytował(a) ten post dnia 11.01.09 o godzinie 23:16

konto usunięte

Temat: Operacje na dacie

Łukasz Cepowski:

A jak przy dodawaniu newsa zapisać datę do pola 'data', który jest timestamp?
Kamil Kukiełka

Kamil Kukiełka Architekt Systemów,
Getin Noble Bank
S.A.

Temat: Operacje na dacie

Bartłomiej S.:
Łukasz Cepowski:

A jak przy dodawaniu newsa zapisać datę do pola 'data', który jest timestamp?
Najlepiej mieć tabelę, która z definicji takie pole uzupełnia :)

http://dev.mysql.com/doc/refman/5.1/en/timestamp.html

Jaśniej?


data TIMESTAMP DEFAULT CURRENT_TIMESTAMP


Wtedy przy INSERTach nie ustawiasz wartości atrybutu - jest ustawiana domyślnie.Kamil Kukiełka edytował(a) ten post dnia 12.01.09 o godzinie 15:06

konto usunięte

Temat: Operacje na dacie

Kamil Kukiełka:

Ok dzięki działa.
Wojciech K.

Wojciech K. realizator pomysłów
własnych

Temat: Operacje na dacie

Wojciech Zbigniew Piotrowicz:
gdy bedziesz miec uzytkownikow portalu z roznych czesci swiata
to bedziesz wiedziec co to ma do rzeczy :)

no ale mowa o dacie server-side (wszak jesteśmy na forum PHP), a nie client-side (np. javascript)...
jedyne, co można namieszać ze strefami czasowymi to to, że jak zmienia się na serwerze czas letni/zimowy, a czas liczony byłby timestampem, to będzie pomyłka o godzinę.

konto usunięte

Temat: Operacje na dacie

Wojciech K.:
Wojciech Zbigniew Piotrowicz:
gdy bedziesz miec uzytkownikow portalu z roznych czesci swiata
to bedziesz wiedziec co to ma do rzeczy :)
no ale mowa o dacie server-side, a
nie client-side
masz absolutna racje.
jedyne, co można namieszać ze strefami czasowymi to to, że jak
zmienia się na serwerze czas letni/zimowy, a czas liczony byłby
timestampem, to będzie pomyłka o godzinę.
ano.
Łukasz C.

Łukasz C. Senior Technical
Architect

Temat: Operacje na dacie

Bartłomiej S.:
Łukasz Cepowski:

A jak przy dodawaniu newsa zapisać datę do pola 'data', który jest timestamp?

yy? date("Y-m-d H:i:s") ?
Wojciech Zbigniew Piotrowicz:
Wojciech K.:
jedyne, co można namieszać ze strefami czasowymi to to, że jak
zmienia się na serwerze czas letni/zimowy, a czas liczony byłby
timestampem, to będzie pomyłka o godzinę.
ano.

mozna trzymac wszystko w UTCŁukasz Cepowski edytował(a) ten post dnia 14.01.09 o godzinie 01:15

konto usunięte

Temat: Operacje na dacie

Łukasz Cepowski:

Już wszystko działa :)
Mam `data` jako timestamp, potem

$data = date("d.m.Y", $db['data']);

I funkcja do wyświetlania ile minęło od dodania komentarza. Dzięki wszystkim bardzo za pomoc.
Marcin Drechna

Marcin Drechna
www.marcindrechna.co
m

Temat: Operacje na dacie

Ja się chciałem dołączyć do pytania odnośnie daty. Mam dwa problemy:

1. W tabeli mam kolumnę date (zapisuje ona w formacie np. 2009-01-16) przy wyświetlaniu na stronie chcę to zamienić, żeby było w formacie 16.01.2009.
Robię tak: $row['data'] = date('d.m.Y'); ale nie przynosi to skutku.

2. Podczas zapisywania daty do bazy pojawia mi się taka data 2016-01-20. Dziwne to jest dlatego, że jak chce datę sprawdzić echo date('d.m.Y'); to pokazuje mi datę dzisiejszą.

Pozdrawiam
Marcin

konto usunięte

Temat: Operacje na dacie

zapewne w BD zapisuje Ci sie string.

sprobuj najpierw strtotime(), a potem na wyniku uzyj date().Wojciech Zbigniew Piotrowicz edytował(a) ten post dnia 16.01.09 o godzinie 07:28
Rafał Kowalewski

Rafał Kowalewski IT Director, F3
Group

Temat: Operacje na dacie

a nie lepiej pobrać z bazy DATE_FORMAT(data, '%d.%m.%Y')?
Marcin Drechna

Marcin Drechna
www.marcindrechna.co
m

Temat: Operacje na dacie

Wojciech Zbigniew Piotrowicz:
zapewne w BD zapisuje Ci sie string.

Dobrze się zapisuje tylko ja źle datę datę podawałem i dlatego pojawiała się ona taka dziwna. Ten problem mam już rozwiązany.

Problem mam teraz z konwersją tej dany z mysql do php. Bo chcę ją zamienić na format d.m.Y z Y-m-d a za wyświetlanie daty odpowiedzialny jest taki kawałek kodu '.$row['data'].'
Rafał Kowalewski:
a nie lepiej pobrać z bazy DATE_FORMAT(data, '%d.%m.%Y')?

Ten sposób nie działa :/ Pojawia mi się błądMarcin D. edytował(a) ten post dnia 16.01.09 o godzinie 12:59

konto usunięte

Temat: Operacje na dacie

a ja tam sobie zawsze robie pole typu int, tam wstawiam unixowy znacznik czasu. :)

Następna dyskusja:

Operacje na dacie




Wyślij zaproszenie do