Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Generowanie daty w Praywatnych wiadomościach na forach
Forum PHP.pl > Forum > Przedszkole
xamrex
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ą)?
vermis
to unix timestamp, czyli ilość sekund od 01.01.1970
potreb
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));
xamrex
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?
lobopol
przecież masz tam bardzo ładnie opisane: http://pl.php.net/manual/pl/function.date.php wielgachna tabelka smile.gif
xamrex
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.  
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.