Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Porownywanie czasu.
Forum PHP.pl > Forum > PHP
Lerno
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 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.
DeyV
jeśli chodzi tylko o porównywanie czasu, znacznie lepiej jest korzystać z czasu w formacie unixtime, czyli data w sekundach.

[manual:3e9675a79a]time[/manual:3e9675a79a]()
FiDO
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 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]
Lerno
Hehe, no niby tak... solidnie przekombinowalem biggrin.gif

I komu tego punkcika dodac? Rzut moneta?

Tak powaznie to dzieki smile.gif
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.