Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Porownywanie czasu.
Lerno
post
Post #1





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 16.03.2004

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


Zrobilem taki skrypcik ktory ma na celu porownywanie ostatniego czasu modyfikacji pliku z obecnym i co 20 sek aktualizuje dane z serwa. Robie to w ten sposob:
[php:1:088fac97b4]<?php
$zapis_danych = "zapis.txt";
$delay = 20; //w sekundach
///////////Czas lecacy w sekundach////////
$curr_time = time();
$time = date("G:i:s", $curr_time);
$t = explode(":", $time);
$czas = ($t[0]*3600)+($t[1]*60)+$t[2];
echo '<br>Current sec: ' . $czas;

//////////Czas ost. modyf. pliku w sek///////
$mod_time = @filemtime($zapis_danych);
$mod = date("G:i:s", $mod_time);
$t = explode(":",$mod);
$mod_pliku = ($t[0]*3600)+($t[1]*60)+$t[2];
echo '<br>Modification time: ' . $mod_pliku;

/////porownanie/////
$wynik = $czas - $mod_pliku;
echo '<br />Wynik roznicy: ' . $wynik;

if($wynik>$delay){
?>[/php:1:088fac97b4]

Problem jednak pojawia sie o 24:00 (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Potem zaczyna zwracac ujemne wyniki no i sila rzeczy wynik jest zawsze mniejszy od delaya wiec dane sa czytane z pliku, nie sa juz aktualizowane. Ktos moglby pomoc mi rozwiazac ten problem, badz zasugerowac lepszy test "starosci" pliku w celu jego ew. updatu?

Z gory thx.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
FiDO
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Niepotrzebnie kombinujesz.. time() zwraca czas w sekundach od Unix Epoch (umowna data 01.01.1970), filemtime() tez zwraca czas w tej samej postaci. Wiec jesli je odejmiesz to otrzymasz roznice w sekundach i to bez wzgledu na to czy jest 24:00 czy tez nie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
A i przy okazji kod Ci sie znacznie skroci...
[php:1:2b6cbf6b64]<?php
$zapis_danych = "zapis.txt";
$delay = 20; //w sekundach

$curr_time = time();
$mod_time = @filemtime($zapis_danych);
$wynik = $czas - $mod_pliku;
echo '<br />Wynik roznicy: ' . $wynik;

if($wynik>$delay){
?>[/php:1:2b6cbf6b64]
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 14.09.2025 - 13:00