Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Generowanie daty w Praywatnych wiadomościach na forach, Na jakiej zasadzie to działa?
xamrex
post 8.06.2010, 18:46:04
Post #1





Grupa: Zarejestrowani
Postów: 267
Pomógł: 1
Dołączył: 10.08.2007

Ostrzeżenie: (0%)
-----


Witam
Chciałbym się dowiedzieć w jaki sposób generowana jest data, kiedy wysyłam prywatną wiadomość.
Zapytanie do bazy mysq wygląda tak
Kod
INSERT INTO `phpbb_privmsgs` (`msg_id`, `root_level`, `author_id`, `icon_id`, `author_ip`, `message_time`, `enable_bbcode`, `enable_smilies`, `enable_magic_url`, `enable_sig`, `message_subject`, `message_text`, `message_edit_reason`, `message_edit_user`, `message_attachment`, `bbcode_bitfield`, `bbcode_uid`, `message_edit_time`, `message_edit_count`, `to_address`, `bcc_address`, `message_reported`) VALUES
(1, 0, 2, 0, '77.253.248.25', 1276018277, 1, 1, 1, 1, 'tytul', 'tresc', '', 0, 0, '', 'yj9f77g5', 0, 0, 'u_2', '', 0);

Jak widać data to 1276018277
Chciałbym się dowiedzieć w jaki sposób jest to generowane..
I co oznaczają te cyferki ( jak to jest powiązane z datą)?

Ten post edytował xamrex 8.06.2010, 18:47:39
Go to the top of the page
+Quote Post
vermis
post 8.06.2010, 18:48:05
Post #2





Grupa: Zarejestrowani
Postów: 279
Pomógł: 56
Dołączył: 3.06.2010
Skąd: Tarnowskie Góry

Ostrzeżenie: (0%)
-----


to unix timestamp, czyli ilość sekund od 01.01.1970


--------------------
Go to the top of the page
+Quote Post
potreb
post 8.06.2010, 18:49:18
Post #3





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Data jest w formacie unixowej time(), poszukaj na forum, jeżeli chcesz zmienić datę na inny format, pobierasz datę i modelujesz:
  1. $date = strftime("Y-m-d", $date+($settings['timeoffset']*3600));


Ten post edytował potreb 8.06.2010, 18:50:02


--------------------

Go to the top of the page
+Quote Post
xamrex
post 8.06.2010, 19:09:47
Post #4





Grupa: Zarejestrowani
Postów: 267
Pomógł: 1
Dołączył: 10.08.2007

Ostrzeżenie: (0%)
-----


Chciałbym, zrobić coś takiego, że jak użytkownik doda kawał na stronę, zostanie powiadomiony poprzez prywatną wiadomość..
Więc wiem już w jaki sposób zapisywana jest data...
Teraz muszę jeszce tę datę wygenerować,
Znalazłem coś takiego:
  1. echo date("Y-m-d"); // rok-miesiąc-dzień

ale nie ma wyświetlonej dokładnej daty (godizny,minuty, sekundy) w jaki sposób mogę pobrać te dane?
Czy można jakoś pobrać czas z bazy danych, czy za pomocą php?
Go to the top of the page
+Quote Post
lobopol
post 8.06.2010, 19:13:22
Post #5





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

Ostrzeżenie: (0%)
-----


przecież masz tam bardzo ładnie opisane: http://pl.php.net/manual/pl/function.date.php wielgachna tabelka smile.gif


--------------------
Go to the top of the page
+Quote Post
xamrex
post 8.06.2010, 19:16:18
Post #6





Grupa: Zarejestrowani
Postów: 267
Pomógł: 1
Dołączył: 10.08.2007

Ostrzeżenie: (0%)
-----


znalazłem
Kod
$wynik = mysql_query("SELECT NOW()");

Tylko nie ma tam minut i sekund, i godzin, więc wygeneruje je sobie z php

Mój plik php
Kod
<?php
include ('../dbconnect.php');

$wynik = mysql_query("SELECT NOW()");  // przypisuje do zmiennej tresc zapytania
$wynik2 = mysql_result( $wynik, 0);
$godzina = date("H");
$minuty = date("i");
$sekundy = date("s");

$godzunix = ($godzina*3600);
$minutyunix = ($minuty*60);


$data_explode = explode ( '.', $wynik2 ); //rozbijamy stringa, otrzymujemy tablicę
$timestamp = mktime ( 0, 0, 0, $data_explode[1], $data_explode[0], $data_explode[2] );

$czasunix = $timestamp+$godzunix+$minutyunix+$sekundy;
echo $timestamp;
echo "<BR>";
echo $czasunix;
?>


Tylko że pokazuje on teraz
1117650775

A w pierwszym poście
było 1276018277

Więc są OGROMNE różnice..
Ktoś może wie z czego one wynikają?

EDIT:
TUTAJ jest gotowe
  1.  
  2. <?php
  3. //nawiązujemy połączenie z serwerem
  4. $connect = fsockopen('time-a.nist.gov', 37);
  5. //sprawdzamy czy nawiązanie połączenia się powiodło
  6. if($connect) {
  7. fputs($connect, "n");
  8. //pobieramy przesłany wzorzec
  9. $wzorzec = fread($connect, 128);
  10. //zamykamy połączenie z serwerem
  11. fclose($connect);
  12. }
  13. //konwertujemy binarny zapis na UNIX-owy znacznik czasu
  14. $wzorzec = abs(hexdec('7fffffff') -
  15. hexdec(bin2hex($wzorzec)) -
  16. hexdec('7fffffff')) - 2208988800;
  17. //wyświetlamy aktualny czas
  18. echo date("Y-m-d H:i:s", $wzorzec); //w zwyklej daie
  19. echo $wzorzec; //unixowe
  20. ?>
  21.  


Ten post edytował xamrex 8.06.2010, 19:47:31
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 06:45